主题:[讨论]C中函数调用出错
代码本身的结构不用考虑,只是在编译时VC提示三个函数Copy,Calculation,Compare参数转化有问题,我检查过,函数中参数使用应该没有错误,求解释~~~~~谢谢啦(代码如下)
#include<stdio.h>
#include<math.h>
#define N 5
#define M 9
void Copy(double b[5][9],double a[5][9])
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
a[i][j]=b[i][j];
}
}
}
void Calculation(double b[5][9])
{
int i,j;
for(i=3;i>0;i--)
{
for(j=1;j<8;j++)
{
b[i][j]=(1.0/4)*(b[i-1][j]+b[i][j-1]+b[i+1][j]+b[i][j+1]);
}
}
}
int Compare(double b[5][9],double c[5][9])
{
int i,j;
int flag=0;
for(i=0;i<5;i++)
{
for(j=0;j<9;j++)
{
if(fabs(b[i][j]-c[i][j])<0.005);
else
{
flag=1;
return(flag1);
}
}
}
return flag;
}
void main()
{
double b[5][9],c[5][9];
int i,j;
int k;
for(i=0;i<5;i++)
{
for(j=0;j<9;j++)
{
if(j==8) b[i][j]=100.0;
else b[i][j]=0;
}
}
for(i=0;i<5;i++)
{
for(j=0;j<9;j++)
{
printf("%.4f ",b[i][j]);
}
printf("\n");
}
do
{
Copy(b[5][9],c[5][9]);
Calculation(b[5][9]);
}while(Compare(b[5][9],c[5][9]));
for(i=1;i<4;i++)
{
for(j=1;j<8;j++)
{
printf("%.4f ",b[i][j]);
}
printf("\n");
}
}
#include<stdio.h>
#include<math.h>
#define N 5
#define M 9
void Copy(double b[5][9],double a[5][9])
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
a[i][j]=b[i][j];
}
}
}
void Calculation(double b[5][9])
{
int i,j;
for(i=3;i>0;i--)
{
for(j=1;j<8;j++)
{
b[i][j]=(1.0/4)*(b[i-1][j]+b[i][j-1]+b[i+1][j]+b[i][j+1]);
}
}
}
int Compare(double b[5][9],double c[5][9])
{
int i,j;
int flag=0;
for(i=0;i<5;i++)
{
for(j=0;j<9;j++)
{
if(fabs(b[i][j]-c[i][j])<0.005);
else
{
flag=1;
return(flag1);
}
}
}
return flag;
}
void main()
{
double b[5][9],c[5][9];
int i,j;
int k;
for(i=0;i<5;i++)
{
for(j=0;j<9;j++)
{
if(j==8) b[i][j]=100.0;
else b[i][j]=0;
}
}
for(i=0;i<5;i++)
{
for(j=0;j<9;j++)
{
printf("%.4f ",b[i][j]);
}
printf("\n");
}
do
{
Copy(b[5][9],c[5][9]);
Calculation(b[5][9]);
}while(Compare(b[5][9],c[5][9]));
for(i=1;i<4;i++)
{
for(j=1;j<8;j++)
{
printf("%.4f ",b[i][j]);
}
printf("\n");
}
}