| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1306 人关注过本帖
标题:[问题已解决][求助] why???
取消只看楼主 加入收藏
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
结帖率:100%
收藏
 问题点数:0 回复次数:5 
[问题已解决][求助] 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
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
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 

刚刚不小心 for(i=0;i<3;i++); 多了个;
可是编译时竟然没报错,只是出了错误的答案,
现在知道了,谢啦~~~~~~


人生没有彩排,每天都是现场直播~~~
2006-07-16 16:17
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
为什么其实是错的,编译时却不报错啊?

人生没有彩排,每天都是现场直播~~~
2006-07-16 16:25
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
以下是引用摄政王:多尔滚在2006-7-16 16:27:26的发言:
for(i=0;i<3;i++);


===>

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

{

;

}

这我知道了呀,for 后面多了一个分号,
我想问的是在 for(i=0;i<3;i++); 编译时为什么不报错啊?只是出了错误的答案
是编译器不好吗?还是本来就检查不出来的啊?


人生没有彩排,每天都是现场直播~~~
2006-07-16 16:36
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
哦,知道了,3Q

人生没有彩排,每天都是现场直播~~~
2006-07-16 16:43
快速回复:[问题已解决][求助] why???
数据加载中...
 
   



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

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