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

#include"stdio.h"voidmain(){inta[10][10]={{1}};inti,j;for(i=0;i<=9;i++){for(j=0;j<=9;... #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;
}
展开
 我来答
Negamax
2012-12-06 · TA获得超过2723个赞
知道小有建树答主
回答量:656
采纳率:100%
帮助的人:291万
展开全部
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<stdio.h>
#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<i;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];

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

好运!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
战漠梦年骨n
2012-12-06 · TA获得超过114个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:111万
展开全部
#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;
}
更多追问追答
追问
亲,可以详细解释下我错的地方么?
追答
写了= =
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3038d88
2012-12-06 · TA获得超过1097个赞
知道小有建树答主
回答量:1670
采纳率:0%
帮助的人:1168万
展开全部
函数main 声明为 void
所以不应该有 renturn 0;

if
else 排版也不对.
应该尽量使用
if (..)
{
执行.
}
else
{
执行.
}

数组 a 初始化方式也不对.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
解0人
推荐于2016-07-10 · TA获得超过2389个赞
知道大有可为答主
回答量:1474
采纳率:83%
帮助的人:764万
展开全部
#include "stdio.h"
int main()
{
int a[10][10];
int i,j;
for(i=0;i<=9;i++)
{
for(j=0;j<=i;j++)
{
if(j==0||i==j)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
printf("%5d",a[i][j]);
}
printf("\n");
}
return 0;
}
更多追问追答
追问
你的回答最简洁直接了。。很对我胃口。。哎,但是大家都回答。。。我应该采纳谁好呢
追答
呵呵,让我说当然选我了,可以加我HI友,以后多交流,互相学习。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火舞蝶衣
2012-12-06 · TA获得超过3818个赞
知道小有建树答主
回答量:1521
采纳率:50%
帮助的人:508万
展开全部
if(i=j) printf("\n"); 这行的等于判断应该是用两个等号。。

另,你没有在j==0和i==j的时候赋值边界的1
然后,似乎if(i=j) printf("\n");的输出回车也是不需要的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式