
这个杨辉三角我用C语言写出来怎么都是错的,各位能不能帮我看看我哪里错了,并且怎么改正啊
程序有多个错,感觉思路不明确,开头的就大错了
printf("%d\t", a[0][0]);//你的第一行是打印在左边的?那么后面的\t有什么意义?
if (i = 0) //C的比较要用==不能用=,且你的i根本没有初始值,这个判断有点莫名
{
for (j = 1; j < n; j++)
{
printf(" "); //打印20个空格也没意义
}
}
另外,20行的杨辉三角不可能用\t,要显示不下的
以下是一个简单的参考(不考虑前面的空格了)
#include <stdio.h>
int main()
{
int n = 20;
int a[20][20] = {0};
int i, j;
for (i = 0; i < n; i++)
{
a[i][i] = 1;
a[i][0] = 1;
}
for (i = 2; i < n; i++)
{
for (j = 1; j <= i; j++)
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j <= i; j++)
printf("%d ", a[i][j]);
printf("\n");
}
}