永发信息网

程序问题,用数组搞一个算法输出杨辉三角形前10行

答案:2  悬赏:0  手机版
解决时间 2021-07-17 22:47
  • 提问者网友:蓝琪梦莎
  • 2021-07-17 14:02

#include<stdio.h>
void main()
{
int i,j,a[10][10]={{1},{1,1},{1,2,1}};
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(a[i][j]==0)
printf("\n");
if(i>2&&j>0)
a[i][j]=a[i-1][j-1]+a[i-1][j];
if(i==j||j==0)
a[i][j]=1;
printf("%d",a[i][j]);
}
}
printf("\n");
}

各位大侠帮忙哈··算法的问题,但是怎么也找不出来是错在哪了!!?

最佳答案
  • 五星知识达人网友:笑迎怀羞
  • 2021-07-17 15:42


#include<stdio.h>


void main()
{
int i,j,a[10][10]={{1},{1,1},{1,2,1}};
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++) //这个就是实现杨辉三角的输出控制.
{
if(i>2&&j>0)
a[i][j]=a[i-1][j-1]+a[i-1][j];
if(i==j||j==0)
a[i][j]=1;
printf("%5d",a[i][j]); //输出格式控制.
}
printf("\n"); //回车放到for(i)循环中.
}


}


效果:


全部回答
  • 1楼网友:逐風
  • 2021-07-17 17:07
#include<stdio.h> void main() { int i,j,a[10][10]={{1},{1,1},{1,2,1}}; for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(i>2&&j>=0) a[i][j]=a[i-1][j-1]+a[i-1][j]; if(i==j||j==0) a[i][j]=1; if(a[i][j] == 0) { printf("\n"); break; } printf("%d ",a[i][j]); } } printf("\n"); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯