if(i=j)
改为
if(i==j)
if(i=j)没报错是因为它本身没有语法错误,但i=j是语句而不是逻辑表达式了。
C语言判断相等要两个等号,改成i==j试试
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);
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");
}