全部问题 > 当前问题

杨辉三角 请问哪里出错了

blob.png

#include<stdio.h>

main()

{

int a[10][10]={0},i,j;

for(i=0;i<10;i++)

a[i][0]=1;

for(i=1;i<10;i++)

  for(j=1;j<10;j++)

a[i][j]=a[i-1][j]+a[i-1][j-1];

for(i=0;i<10;i++)

{

for(j=0;j<i+1;j++)

printf("%5d",a[i][j]);

}

}


李前 2017-3-7 21:14:29

共 4 个回答

许多余 2017-3-7 21:54:55

加个换行


最佳答案

qqq 2017-3-7 21:55:25

你的代码跟视频里只有两处差别。

第一处区别:

for(i=0;i<10;i++)

{

for(j=0;j<i+1;j++)//视频里写的是for(j=0;j<10;j++)

printf("%5d",a[i][j]);

}

按照你的写法,输出的三角不显示右上角的0,所以这样改也是可以的。

第二处区别:

for(i=0;i<10;i++)

{

for(j=0;j<i+1;j++)

printf("%5d",a[i][j]);

                    printf("\n");//你没有写这个换行符输出语句

}

因为少了一句换行符输出语句,导致你输出的元素不能像三角那样排列而是紧接着输出,所以看起来像是跟标准答案不符合,所以建议你加上这个输出语句再试试。



许多余 2017-3-7 21:55:52

QQ图片20170307215906.png

李前 2017-3-8 18:59:23

回复 许多余:谢谢 已解决


问题来自: 杨辉三角