c语言编程输出杨辉三角前5行,C语言的杨辉三角输出前10行,求大神解答一下我的程序到底哪里错了...

C语言的杨辉三角输出前10行,求大神解答一下我的程序到底哪里错了

答案:6  信息版本:手机版

解决时间 2019-10-06 21:04

已解决

2019-10-06 03:15

#include "stdio.h"

void main()

{

int a[10][10]={{1}};

int i,j;

for(i=0;i<=9;i++)

{

for(j=0;j<=9;j++)

if(i=j) printf("\n");

else a[i][j]=a[i-1][j]+a[i-1][j-1];

printf("%d",a[i][j]);

}

printf("\n");

return 0;

}

最佳答案

2019-10-06 03:34

1 效果图

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

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

请按任意键继续. . .

2 源代码:

#include

#include "stdlib.h"

int main()

{

int a[11][11],i,j;

a[0][0] = 1;

a[1][0] = 1;

a[1][1] = 1;

for(i=2;i<=10;i++)

{

a[i][1] = 1;

a[i][i] = 1;

for(j=2;j

a[i][j] = a[i-1][j-1]+a[i-1][j];

}

for(i=1;i<=10;i++)

{

for(j=1;j<=i;j++)

printf("%3d ",a[i][j]);

printf("\n");

}

system("pause");

return 0;

}

3、 思路

1:

a[0][0] = 1;

a[1][0] = 1;

a[1][1] = 1;

三角的前3个元素都为1

2:数组的对角线上的元素和第一列元素都为1

所以

a[i][1] = 1;

a[i][i] = 1;

3:a[i][j] = a[i-1][j-1]+a[i-1][j];

其它的元素都等于两个肩上的元素之和

好运!

全部回答

1楼

2019-10-06 07:57

函数main 声明为 void

所以不应该有 renturn 0;

if

else 排版也不对.

应该尽量使用

if (..)

{

执行.

}

else

{

执行.

}

数组 a 初始化方式也不对.

2楼

2019-10-06 06:53

#include "stdio.h"

void main()

{

int a[10][10]={0};

a[0][0]=1;

int i,j;

for(i=1;i<=9;i++) //从1开始

{

for(j=0;j<=9;j++){

if(i==j) printf("\n"); //你写成一个等号

else {

if(j==0) //没有判断J=0的情况,会导致数组下标为-1

a[i][j]=1;

else

a[i][j]=a[i-1][j]+a[i-1][j-1];

}

if(a[i][j]!=0) // 为零不输出

printf("%d ",a[i][j]);

}

}

printf("\n");

return 0;

}

3楼

2019-10-06 05:47

if(i=j) printf("\n"); 这行的等于判断应该是用两个等号。。

另,你没有在j==0和i==j的时候赋值边界的1

然后,似乎if(i=j) printf("\n");的输出回车也是不需要的

4楼

2019-10-06 05:04

它们骗你的,把分给我吧。

#include

void main()

{

int i,j,n=0,a[17][17]={0,1};

while(n<1 || n>16)

{

printf("请输入杨辉三角形的行数:");

scanf("%d",&n);

}

for(i=1;i<=n;i++)

{

for(j=1;j<=i;j++)

{

a[i][j]=a[i-1][j-1]+a[i-1][j];

printf("%5d",a[i][j]);

}

printf("\n");

}

}

5楼

2019-10-06 04:17

未格式化输出的:(粘过来就没缩进了)

你的我不大好改啊,比较一下吧

#include "stdio.h"

void main()

{

int a[10][10]={{1}};

int i,j;

for(i=0;i<=9;i++)

{

a[i][0]=1;

a[i][i]=1;

}

for(i=2;i<=9;i++)

{

for(j=1;j<=i;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

for(i=1;i<=9;i++)

{

for(j=1;j<=i;j++)

{

printf("%d",a[i][j]);

}

}

}

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值