永发信息网

请教C语言(杨辉三角形)高手

答案:2  悬赏:0  手机版
解决时间 2021-05-13 05:13
  • 提问者网友:欲望失宠
  • 2021-05-12 07:55

请教C语言高手 [ 标签:请教,c语言 ]

题目⑵:输出杨辉三角形(要求输出10行)

     1

    1  1

   1  2  1

  1  3  3  1

1  4  6  4  1

1  5 10  10  5  1 

1 6 15 20 15  6  1

…… …… ……

(提示,使用二维数组)

杨辉三角图形必须和上面的一样。

我的程序那里错了?

#include<stdio.h>
void main()
{
int a[11][11],i,j,n;
char space=' ';
for(i=1;i<11;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=3;i<11;i++)
for(j=2;j<i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;i<11;i++)
{
for(j=1;j<11-i;j++)
{
printf("%c",space);
}
for(n=1;n<=i;n++)
{
printf("%2d",&a[i][n]);
}
printf("\n");
}
}

最佳答案
  • 五星知识达人网友:何以畏孤独
  • 2021-05-12 09:09
在你的基础上改了下
你参考下 希望对你有帮助

#include<stdio.h>
void main()
{
int a[11][11],i,j,n;

for(i=0;i<11;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for (i=2;i<11;++i)
{
for(j=1;j<i;++j)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for (i=0;i<11;++i)
{
for (j=0;j<10-i;++j)
{
printf(" ");
}

for(j=0;j<=i;++j)
{
printf("%3d ",a[i][j]);
}
printf("\n");
}
}
全部回答
  • 1楼网友:何以畏孤独
  • 2021-05-12 09:27

对你的程序做了如下修改:

#include<stdio.h> void main() { int a[11][11],i,j; char space=' '; for(i=1;i<11;i++) { a[i][1]=1;//a[i][0]错误,应该是第1列 a[i][i]=1; } for(i=3;i<11;i++) for(j=2;j<i;j++)//范围错误,j<i-1应改为j<i a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=1;i<11;i++) { for(j=40-2*i;j>0;j--)//用空格来压缩输出,输出窗口一行有列 printf("%c",space); for(j=1;j<=i;j++) printf("%4d",a[i][j]);//输出空格%md中的m与j=40-n*i中的n关系是m=2n printf("\n"); } }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯