c语言中数组的题目(急)请问是怎么算的,有两个for,怎么循环啊

main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i... main()
{int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j];
printf("%d\n",s);
} 输出结果是18,不知道是怎么算的??
展开
 我来答
Richardljl
2010-07-29 · TA获得超过685个赞
知道小有建树答主
回答量:313
采纳率:0%
帮助的人:331万
展开全部
i的值为1 2,j的值为从0开始到i的值
因此当i=1时,j取0 1,于是s=s+a[1][0]+a[1][1]=3+4=7
当i=2时,j取0,1,2三个值 ,于是 s=7+a[2][0]+a[2][1]+a[2][2]=7+5+6+0=18.
注意到数组a中,j=2时的所有值都是0就行了。
fancyivan
2010-07-29 · TA获得超过837个赞
知道小有建树答主
回答量:633
采纳率:0%
帮助的人:436万
展开全部
数组: 第0列 第1列 第2列
第0行 1 2 0
第1行 3 4 0
第2行 5 6 0

因为数组a定义为3*3,所以第2列自动补0.

for(i=1;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j];

i可取1,2
当i是1时,j可以取0,1
当i是2时,j可以取0,1,2
所以s是这5个位置的数字的总和:s=a[1][0] + a[1][1] + a[2][0] + a[2][1] + a[2][2] = 3 + 4 + 5 + 6 + 0 =18
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
moneyqiong
2010-07-29 · TA获得超过196个赞
知道答主
回答量:52
采纳率:0%
帮助的人:59.3万
展开全部
很简单,i只运行二次

1、 i为1时,j的值为0,1,分别为a[1][0],a[1][1]
2、 i为2时,j的值为0,1,2 分别为a[2][0],a[2][1],a[2][2]

所以 s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]
= 3+4+5+6+0
= 18
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
猪头或火宝宝
2010-07-29 · TA获得超过2758个赞
知道小有建树答主
回答量:1001
采纳率:0%
帮助的人:1529万
展开全部
由题知:a[][]={1,2,0
3,4,0
5,6,0
}
当i=1时;s+=3+4=7;
当i=2时:s+=5+6=0,s=18;即最后的结果是18
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式