我用VC++经常出现第一次编译1个警告在按下编译就0个警告是怎么回事

来源:百度知道 编辑:UC知道 时间:2024/07/16 01:54:57
比如
#include <stdio.h>
main()
{
int n,i,sum=0,j,a[6][6];
printf("Input n:");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);

for(i=0;i<n;i++)
for(j=0;j<n;j++)
if((i+j!=n-1)&&(i!=n-1)&&(j!=n-1))
sum+=a[i][j];
printf("sum=%d\n",sum);
}
有时有警告有时没有是怎么回事

这个说明你的语句不完全合法,但是可以运行。
再次运行时,默认了。
#include <stdio.h>
main()
{
int n,i,sum=0,j,a[6][6];
printf("Input n:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j])
}
};/*这个最好用{}包起来*/

for(i=0;i<n;i++)
for(j=0;j<n;j++) /*这两个循环只能包括下面if语句。而不能包括sum+=a[i][j]; 你到底要不要sum的循环呢?*/
if((i+j!=n-1)&&(i!=n-1)&&(j!=n-1))
sum+=a[i][j];
printf("sum=%d\n",sum);
}