为什么从c语言做杨辉三角只能输出一列
#include "stdio.h"
main()
{
int a=1,b=1,x[9][9];
while(a<=9)
{
while(b<=a)
{
if(b==1||a==b) printf("1 ");
else printf("%d",x[a-1][b-1]+x[a-1][b]);
fflush(stdin);
b++;
}
a++;
printf(" ");
}
}
兄弟不得不说你的思路确实巧妙, 我以前写的比这个代码量多的多!
刚才看了下, 你犯了两个大的错误:
1. 数组初始化和每次赋值,而去用里面的具体值
2. 每次a循环依次玩, b就应该重新赋值为 1
下面为代码: 我把改的重点画出来了
运行结果:
=================code===================
#include "stdio.h"
int main()
{
int a = 1, b = 1, x[9][9] = {0};
while(a < 9)
{
b = 1;
while(b <= a)
{
if(b == 1 || a == b) x[a][b] = 1;
else x[a][b] = x[a-1][b-1] + x[a-1][b];
printf("%d ", x[a][b]);
b++;
}
a++;
printf(" ");
}
return 0;
}
=================code ===================
热门标签: