12-21-2011, 09:16 PM
Введенные значения в массив Array, "передаются с ошибкой в другую функцию".
На картинке показан ввод значений 3,4,5,6 в двумерный массив Array. Почти в самом низу, проверяю значения, которые находятся в массиве - получаю 5,6,5,6.
![[Изображение: thumb.png]](http://rghost.ru/35532204/thumb.png)
Проблема возможно заключается в такой инициализации - Array[0][0].
Как лечить?(не созданием объекта)
На картинке показан ввод значений 3,4,5,6 в двумерный массив Array. Почти в самом низу, проверяю значения, которые находятся в массиве - получаю 5,6,5,6.
![[Изображение: thumb.png]](http://rghost.ru/35532204/thumb.png)
Проблема возможно заключается в такой инициализации - Array[0][0].
Как лечить?(не созданием объекта)
main.cpp
PHP код:
<?php
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
int setCellsArray(int n)
{
do
{
printf("Enter the size of a square matrix: ");
scanf("%d",&n);
if(n == 0) cout << " [ERROR!] n == 0 \n";
} while(n==0);
return n;
}
void setValueArray(double Array[0][0],int n)
{
for(int i=0,k=1; i<n; i++,k++)
{
for(int j=0,l=1; j<n; j++,l++)
{
cout << "Enter the value of the cell[" << k << "][" << l << "] = ";
cin >> Array[i][j];
}
}
}
void formArray(double Array[0][0],double Array2[0][0],int n)
{
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
if(i>j)
{
Array2[i][j] = atan(Array[i][j])/pow((Array[i][j] + 0.2),1/3);
}
if(i == j)
{
Array2[i][j] = 0;
}
if(i<j)
{
Array2[i][j] = tan(Array[i][j]);
}
}
}
}
double SumD(double Array2[0][0],int n)
{
double SumD = 0;
int q=0,b=0;
for(int i=0; i<n; i++)
{
if(i==q)
{
for(int j=0; j<n; j++)
{
SumD += Array2[i][j];
}
}
if(i>q)
{
b++;
for(int j=0; j<n-b; j++)
{
SumD += Array2[i][j+b];
}
}
}
return SumD;
}
int SaveArray(double Array2[0][0], int n, char const *frame)
{
FILE *F = fopen(frame, "wt");
if(F==NULL)
{
printf("> Error save array ...");
return 0;
}
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
fprintf(F,"%lg ",Array2[i][j]);
}
fprintf(F,"\n");
}
fclose(F);
return 1;
}
int LoadArray(int n)
{
FILE *f = fopen("qq.txt", "r");
if (f == NULL)
{
printf("> Error load array ...");
return 0;
}
else
{
char line[256];
while (!feof(f))
{
if (fgets(line, 256, f))
{
puts(line);
}
}
}
fclose(f);
return 1;
}
void DebugArray(double Array[0][0],double Array2[0][0],int n)
{
printf("Debug Array ...\n");
for(int i=0,k=1; i<n; i++,k++)
{
for(int j=0,l=1; j<n; j++,l++)
{
printf(">> Array[%d][%d] = %lg;\n",k,l,Array[i][j]);
}
}
printf("\n");
printf("Debug Array2 ...\n");
for(int i=0,k=1; i<n; i++,k++)
{
for(int j=0,l=1; j<n; j++,l++)
{
printf(">> Array2[%d][%d] = %lg;\n",k,l,Array2[i][j]);
}
}
}
int main()
{
double Array[0][0],Array2[0][0];
int n = setCellsArray(n); printf("\n");
setValueArray(Array,n); printf("\n");
formArray(Array,Array2,n);
DebugArray(Array,Array2,n);
SaveArray(Array2,n,"qq.txt");
printf("\nLoad Array ...\n");
LoadArray(n);
double Sum = SumD(Array2,n);
printf("The sum elements of the upper triangular matrix = %lg \n",Sum);
}