|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 我突然发现自己好愚蠢啊,有木有?求调教
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
840
人关注过本帖
标题:
我突然发现自己好愚蠢啊,有木有?求调教
只看楼主
加入收藏
abc594986308
等 级:
论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
结帖率:
82.93%
楼主
收藏
已结贴
√
问题点数:10 回复次数:12
我突然发现自己好愚蠢啊,有木有?求调教
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,怎么得来的?我主要不知道a[3][3]怎么分配的?
2013-06-22 19:56
举报帖子
使用道具
赠送鲜花
蚕头燕尾
来 自:Gryffindo
等 级:
贵宾
威 望:
12
帖 子:734
专家分:1546
注 册:2013-3-24
第
2
楼
收藏
得分:0
#include<stdio.h>
int 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);
return 0;
}
/*
1
2
3
4
5
6
这里是3、4、5、6的和
为18
注意:你的i是从1开始的,而非从0开始
*/
学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。
Black Cat Hello Tomorrow~
2013-06-22 20:02
举报帖子
使用道具
赠送鲜花
abc594986308
等 级:
论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
第
3
楼
收藏
得分:0
回复 2楼 蚕头燕尾
那就应该是两行三列,你列出来的是三行两列。。。~~~~我理解错了么?大侠
2013-06-22 20:28
举报帖子
使用道具
赠送鲜花
abc594986308
等 级:
论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
第
4
楼
收藏
得分:0
回复 2楼 蚕头燕尾
如果我没理解错的话那就应该是1+2+4+5+6=18
2013-06-22 20:29
举报帖子
使用道具
赠送鲜花
chen2009qian
等 级:
新手上路
帖 子:7
专家分:5
注 册:2013-6-22
第
5
楼
收藏
得分:2
不懂请楼下的来回答!
2013-06-22 20:36
举报帖子
使用道具
赠送鲜花
蚕头燕尾
来 自:Gryffindo
等 级:
贵宾
威 望:
12
帖 子:734
专家分:1546
注 册:2013-3-24
第
6
楼
收藏
得分:0
回复 3楼 abc594986308
实际上是这样存储的:
1
2
0
3
4
0
5
6
0
无用的0 我在上面的回答中没有写,因为你后面执行的是+操作
对于值为0的点,加不加都不影响最后的结果值,,
我以为楼主懂的。。。
就是3、4、5、6之和==18
另外严密一点来说的话,程序还加上了最末尾的一个0
学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。
Black Cat Hello Tomorrow~
2013-06-22 21:57
举报帖子
使用道具
赠送鲜花
蚕头燕尾
来 自:Gryffindo
等 级:
贵宾
威 望:
12
帖 子:734
专家分:1546
注 册:2013-3-24
第
7
楼
收藏
得分:0
给你个代码,来证明我的说法是对的
#include<stdio.h>
int 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++)
{
printf("%d ",a[i][j]);
s+=a[i][j];
}
printf("\n\n%d\n",s);
return 0;
}
建议楼主自己学会通过写代码来验证自己的想法,
而不是再那里只是猜测。。
学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。
Black Cat Hello Tomorrow~
2013-06-22 22:00
举报帖子
使用道具
赠送鲜花
蚕头燕尾
来 自:Gryffindo
等 级:
贵宾
威 望:
12
帖 子:734
专家分:1546
注 册:2013-3-24
第
8
楼
收藏
得分:0
给你个代码,来证明我的说法是对的
#include<stdio.h>
int 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++)
{
printf("%d ",a[i][j]);
s+=a[i][j];
}
printf("\n\n%d\n",s);
return 0;
}
建议楼主自己学会通过写代码来验证自己的想法,
而不是再那里只是猜测。。
学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。
Black Cat Hello Tomorrow~
2013-06-22 22:01
举报帖子
使用道具
赠送鲜花
lzj12530
等 级:
蝙蝠侠
威 望:
2
帖 子:264
专家分:841
注 册:2013-3-28
第
9
楼
收藏
得分:2
你的数组是这样的a[3][3] 三行三列 数组下面为a[0][0]--到-a[2][2];
元素是
1
2
0
a[0]
3
4
0
a[1]
5
6
0
a[2]
你的for循环i=1 i<3
j=0 j<=i .因此s=3+4+0+5+6+0=18
C++菜鸟
2013-06-22 22:29
举报帖子
使用道具
赠送鲜花
abc594986308
等 级:
论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
第
10
楼
收藏
得分:0
回复 6楼 蚕头燕尾
原来是元素末尾自动补0?这有什么原理可循么?愚笨愚笨啊,唉
2013-06-22 23:16
举报帖子
使用道具
赠送鲜花
13
1/2页
1
2
快速回复:
我突然发现自己好愚蠢啊,有木有?求调教
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.048755 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved