为什么变量的值会被覆盖掉, 定义时用static 也不能阻止
#include <stdio.h>#define N 5
double fun(int w[][N])
{
int i, j;
static double s=0, k=0;
for(i=0;i<N;i++)
{
if((i=0) || (i=4))
for(j=0;j<N;j++)
{
s+=w[i][j];
k++;
}
else
for(j=0;j<N;j+4)
{
s+=w[i][j];
k++;
}
}
s=s/k;
return s;
}
void 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;
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", s);
getch();
}
为什么k和s的值会被覆盖掉, 定义是用static 也不能阻止 结果应该是等于3.375的 不过他偏偏就等于4