C语言问题(很急,我写的程序编译没问题但执行出来却什么都没有)

2025-03-04 12:21:21
推荐回答(4个)
回答1:

if(i=j)
改为
if(i==j)

if(i=j)没报错是因为它本身没有语法错误,但i=j是语句而不是逻辑表达式了。

回答2:

C语言判断相等要两个等号,改成i==j试试

回答3:

a[i][0]=1;a[i][i]=1与j无关,放到j循环里面是浪费机器,应该移到for(j...)前面;
for(j=0;j<=i;j++)改成for(j=1;jif(i>j>=1)不要。

i>j>=1是错误的,首先计算i>j,如果i>j成立,结果为1,后面成了1>=1,结果是1,整个式子等价于i>j,后面>=1的判断没有做;
如果i=j,i>j不成立,结果0,0>=1不成立,结果0,后面>=1的判断还是没有做;
正确的写法是if((i>j)&&(j>=1))

if(i=j)应该是if(i==j);

回答4:

if(i==j)你的if写错了,没有if(i=j),是==才对,你写一个=号,系统只是判断不符合这条
修改如下:已测试正确
int a[10][10],i,j;
for(i=0;i<=9;i++)
for(j=0;j<=i;j++)
{
a[i][0]=1;
if(i==j)
a[i][j]=1;
else
if(i>j>=1)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(i=0;i<=9;i++){
for(j=0;j<=i;j++){
printf("%5d ",a[i][j]);
}
printf("\n");
}