| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1306 人关注过本帖
标题:[问题已解决][求助] why???
只看楼主 加入收藏
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
结帖率:100%
收藏
 问题点数:0 回复次数:21 
[问题已解决][求助] why???
main()
{ int a[10],i,b,c;
printf("enter the array:\n");
for(i=0;i<3;i++);
scanf("%d",&a[i]);
a[3]=4;
b=a[i--];
c=a[i];
printf("%d,%d\n",b,c);
}
如果输入a[0]=5,a[1]=8,a[2]=6
所以b=a[3]=4, 那么c=?

我觉得 c=a[2]=6,可是运行后的结果是:b=4,c=1187 这是为什么啊???

[此贴子已经被作者于2006-7-16 16:41:14编辑过]

搜索更多相关主题的帖子: why 
2006-07-16 15:51
canon787
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-6-28
收藏
得分:0 
for(i=0;i<3;i++);
scanf("%d",&a[i]);
a[3]=4;

你不设计输入数字的吗? 怎么又将4赋值给a[3]呢?

Learning by heart
2006-07-16 16:00
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

for(i=0;i<3;i++); //这里的分号去掉 才能执行 scanf("%d",&a[i])

如果是笔误 结果是你对 b=4,c=6 编译器错


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-07-16 16:08
摄政王:多尔滚
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-7-9
收藏
得分:0 
for(i=0;i<3;i++);

==>
for(i=0;i<3;i++)

19世纪是火车的时代,20世纪是汽车的时代,21世纪是网络的时代。有谁不同意?
2006-07-16 16:10
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
以下是引用Sally_SJL在2006-7-16 15:51:57的发言:
main()
{ int a[10],i,b,c;
printf("enter the array:\n");
for(i=0;i<3;i++); //这边怎么多了个分号。空循环呀。直接出来i=3
scanf("%d",&a[i]); //所以这边的i就是3,下面基本乱了。输入也有问题。!
a[3]=4;
b=a[i--];
c=a[i];
printf("%d,%d\n",b,c);
}
如果输入a[0]=5,a[1]=8,a[2]=6
所以b=a[3]=4, 那么c=?

我觉得 c=a[2]=6,可是运行后的结果是:b=4,c=1187 这是为什么啊???



哇。你这个问题不小呢。


人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-07-16 16:11
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
以下是引用canon787在2006-7-16 16:00:36的发言:
for(i=0;i<3;i++);
scanf("%d",&a[i]);
a[3]=4;

你不设计输入数字的吗? 怎么又将4赋值给a[3]呢?

for(i=0;i<3;i++);
scanf("%d",&a[i]);
只能到a[2]为止,当i=3时,退出循环
而我想知道的是,b=a[i--]; 之后这时b和c的值?所以再另外赋值给a[3]
c=a[i];


人生没有彩排,每天都是现场直播~~~
2006-07-16 16:11
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
收藏
得分:0 
b=a[i--];

偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-07-16 16:11
摄政王:多尔滚
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-7-9
收藏
得分:0 
b=a[i--]; ===> i = 3
c=a[i]; ====> i = 2

19世纪是火车的时代,20世纪是汽车的时代,21世纪是网络的时代。有谁不同意?
2006-07-16 16:14
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
楼上正解。。。

人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-07-16 16:15
★红狼
Rank: 2
等 级:论坛游民
帖 子:190
专家分:17
注 册:2006-7-12
收藏
得分:0 
以下是引用Sally_SJL在2006-7-16 16:11:33的发言:

for(i=0;i<3;i++); // 你这里有个分号,就错了。
scanf("%d",&a[i]);
只能到a[2]为止,当i=3时,退出循环
而我想知道的是,b=a[i--]; 之后这时b和c的值?所以再另外赋值给a[3]
c=a[i];

你的应该 把for() 后面的分号 去了。
然后,你b=a[2];c=a[1];

2006-07-16 16:15
快速回复:[问题已解决][求助] why???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041182 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved