double fun ( int w[][N] )
{
int i,j,sum=0,t=0,array;
for(j=0;j<5;j++)
sum+=w[0][j]+w[4][j];
for(i=1;i<4;i++)
t+=w[i][0]+w[i][4];
sum+=t;
array=sum/16;
return array;
}
sum,t,array都要定义成double类型,否则最后的sum/16不会保留小数而是取整。
还有,这个编程题不是只要实现计算这个给定矩阵的周边元素平均值而已,而是需要能计算给定的任何矩阵,你的代码写得太死,不灵活,我改了一下,你看看
double fun ( int w[][N] )
{
int i,j;
double sum=0.0,t=0.0,array;
for(j=0;j<N;j++)
sum+=w[0][j]+w[N-1][j];
for(i=1;i<N-2;i++)
t+=w[i][0]+w[i][N-1];
sum+=t;
array=sum/((N-1)*(N-1)); //你把所有数字都固定死了,那这个N传入fun函数有什么作用呢?这个代码还怎么用来计算其他的矩阵呢?
return array;
}