c语言 a[17][17]={0,1}什么意思

#include<stdio.h>main(){inti,j,n=0,a[17][17]={0,1};while(n<1||n>16){printf("请输入杨辉三角形的... #include <stdio.h>
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");
}
}
展开
 我来答
元初晴014
2012-03-28 · TA获得超过2174个赞
知道小有建树答主
回答量:589
采纳率:0%
帮助的人:620万
展开全部
a[17][17] = {0,1} 的结果是 a[0][0] = 0; a[0][1] = 1;
我想你可能是与 a[17][17] = {0} 混了。 这样写是把所有的初始为零。 上一个则只对头两个付了值。

你的代码为杨辉三角的设计的数据结构是个二维数组,而且是以1为开始的。有些人习惯以0 为数组的起始位置, 当然了,怎样写都行。
只是提一下, 如果以0为起始, 则为 a[17][17] = {1}; //a[0][0] = 1; 其余的未付初始值
下面的循环也要改为 for (i=0; i<n; i++) for (j=0; j<=i; j++)....
追问
为什么执行的时候显示的没有 0 呢
追答
因为你输出的循环用的是 i=1, j=1; 
0 1 2 3 4 5 6 7 8 9 10...
0 {0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 “0” 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0}
.......
注意 1 行 1列被双引号括起来的家伙, 你的程序是从这里开始输出的。 而每一行的输出是由你代码中的第二层循环 中的 j控制的。 j=1; j<=i; j++ : 这样, 你每行都是从 第 ‘1’ 列开始输出, 输出 i 次。。
kaixingui2012
2012-03-28 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6862万
展开全部
a[17][17]={0,1};
即:定义一个17*17的数组,并赋初值,a[0]=0; a[1]=1;其他值为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不变2022
2017-12-11
知道答主
回答量:1
采纳率:0%
帮助的人:956
展开全部

杨辉三角
#include<stdio.h>
main()
{
int a[10][10];
int i,j;
for(i=0;i<10;i++)
{
a[i][0]=1;a[i][i]=1;
}
for(i=2;i<10;i++)
{
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
(2)
#include <stdio.h>
main()
{
int i,j,n=0,a[17][17]={1};
while(n<1 || n>16)
{
printf("请输入杨辉三角形的行数:");
scanf("%d",&n);
}
for(i=1;i<n;i++)

{
a[i][0]=1; /*第一列全置为一*/

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("%5d",a[i][j]);

printf("\n");

}

}
(3)
#include <stdio.h>

main()

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

while(n<1 || n>16)

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

scanf("%d",&n);

}

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

{ b[0]=a[0];

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

b[j]=a[j-1]+a[j]; /*每个数是上面两数之和*/

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

/*输出杨辉三角*/

{ a[j]=b[j]; /*把算得的新行赋给a,用于打印和下一次计算*/

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

}

printf("\n");

}

}

(4)
#include <stdio.h>

main()

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

while(n<1 || n>16)

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

scanf("%d",&n);

}

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

{ l=0;

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

{ r=a[j];

a[j]=l+r; /*每个数是上面两数之和*/

l=r;

printf("%5d",a[j]); /*输出杨辉三角*/

}

printf("\n");

}

}


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
众里寻他0822
2012-03-28 · TA获得超过136个赞
知道小有建树答主
回答量:263
采纳率:100%
帮助的人:258万
展开全部
a[0][0]=0 a[0][1]=1
a[17][17]=
{0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
……
}你什么意思?
追问
为什么执行的时候没有显示0呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
naleduo00
2012-03-28 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:270
采纳率:0%
帮助的人:163万
展开全部
a[0][0]=0;a[0][1]=1;其他均为0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式