二维数组赋值问题(很奇怪,why?)
main(){
float a[3][6],x,ave=0.0;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<6;j++)
{
scanf("%f",&x);a[i][j]=x; /*就是这个地方很奇怪,要先把输入的值赋予给x,然后再赋予a[i][j],不这样搞还不行,why?*/
ave+=a[i][j];
}
ave=ave/(3*6);
for(i=0;i<3;i++)
for(j=0;j<6;j++)
a[i][j]=a[i][j]/ave;
for(i=0;i<3;i++)
{
for(j=0;j<6;j++)
printf("%8.2f",a[i][j]);
printf("\n");
}
getch();
}
程序的作用是输入一个3*6的矩阵,然后把原矩阵中的每个元素替换为其他元素。
*按习惯那个赋值语句应该是scanf("%f",&a[i][j]);但这样改会运行错误,试过wintc、c-free4两种编译器,wintc是一闪就没了,c-free4是在输入第一行后错误。