下列程序要求实现为打印出以下的杨辉三角形(要求打印出10行)的功能。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
请改正程序中的错误。不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 10
void main()
{
int i,j,a[N][N];
for(i=0;i<N;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=1;i<N;i++)
for(j=0;j<N;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(“\n”);
}
讲讲错在哪?在线等 急求~
我很久之前写过这个,但是当时用的是栈区数组固定长度,你改成动态数组即可。
void main()
{
int a[10] = { 1 };
for (int i = 0; i < 10; i++) //用循环打印第一行
{
if (a[i] == 0)
{
printf("%4c",' ');
}
else
printf("%4d", a[i]);
}
//先输出第一行之后再进行循环
for (int j = 2; j <= 10; j++)
{
printf("\n"); //回车输入第二行
// printf("1 "); //输入每一行开头的1
for (int i = 9; i >= 0; i--)
{
if (i != 0) //实现每行的第一个数均为一,后面的数才开始符合规则
{
a[i] = a[i] + a[i - 1];
}
else
a[i] = 1;
}
for (int i = 0; i < 10; i++) //打印每一行
{
if (a[i] == 0)
printf("%4c",' ');
else
printf("%4d ", a[i]);
}
}
system("pause");
}