c语言程序,我觉得这个程序不对,但是它能算出结果为什么?求大神指点。
N*N的数组,求出数组周边元素的平均值,并返回给主函数。他的程序设计是这样的
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define N 5
double fun (int w[][N])
{ int i,j,k=0;
double s=0.0;
for(j=0;j<N;j++)
{s+=w[0][j];
k++;}
for (j=0;j<N;j++)
{s+=w[N-1][j];
k++;}
for (i=1;i<N-2;i++)
{s+=w[i][0];
k++;}
for (i=1;i<N-2;i++)
{s+=w[i][N-1];
k++;}
return s/=k;
}
main()
{
int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};
int i,j;
FILE *out;
double s;
printf("***** The array *****\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
s=fun(a);
printf("***** THE RESULT *****\n");
printf("The sum is %lf\n",s);
out = fopen("out.dat", "w");
fprintf(out, "%lf", s);
fclose(out);
}
各位大神,我不理解的是,求的是周边元素的平均值,那不是应该s除以元素的个数吗?他为什么除以k,k++四次以后也只是4而已,怎么算出的结果呢?