| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2005 人关注过本帖
标题:简单问题,高手莫进
只看楼主 加入收藏
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
不好意思,没忍住

总有那身价贱的人给作业贴回复完整的代码
2011-11-18 08:14
卓建
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2011-11-16
收藏
得分:2 
输入的char没用一样 不管怎样都是循环for语句中的i最后值都是5一样
2011-11-18 09:19
卓建
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2011-11-16
收藏
得分:0 
啥子东西哦 最后出来的都是5嘛 不管怎么都是执行for语句中的i
2011-11-18 09:22
xp0213
Rank: 7Rank: 7Rank: 7
来 自:湖北武汉
等 级:黑侠
威 望:1
帖 子:222
专家分:524
注 册:2011-10-26
收藏
得分:2 
加一点,变成这样
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-11-18 21:23
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
作者的原意是当出现这样的失误时,编译器是照常通过的,能执行,在某些情况下似乎\甚至能得到想要的结果(14楼小兄弟的结果可以为证).不过这就是个陷阱,程序中如果出现这样的失误,后果将可能不堪设想.按原意,应该是分5次输入5个字符(每次加回车),输出0--4的5个数字.这个scanf可能会导致的结果:只输入一个字符(回车),就能输出0 1 2 3 4(分行),也可能会进入死循环或得到类似14楼的结果.当然有些编译器可能比较聪明,会提出警告信息.


★★★★★为人民服务★★★★★
2011-11-18 21:59
匏樽邀月
Rank: 2
等 级:论坛游民
帖 子:10
专家分:20
注 册:2011-12-18
收藏
得分:0 
我从来都没去想过这些问题,新手

只管编程不对再改
2011-12-27 21:34
kennel2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:157
注 册:2011-12-13
收藏
得分:0 
以下是引用cnfarer在2011-11-18 21:59:12的发言:

作者的原意是当出现这样的失误时,编译器是照常通过的,能执行,在某些情况下似乎\甚至能得到想要的结果(14楼小兄弟的结果可以为证).不过这就是个陷阱,程序中如果出现这样的失误,后果将可能不堪设想.按原意,应该是分5次输入5个字符(每次加回车),输出0--4的5个数字.这个scanf可能会导致的结果:只输入一个字符(回车),就能输出0 1 2 3 4(分行),也可能会进入死循环或得到类似14楼的结果.当然有些编译器可能比较聪明,会提出警告信息.
楼主可以试一下,小弟试的结果是输入了5次才出现楼上图片中的效果..而不是只输入一个字符。
2011-12-28 20:14
碧螺春能解渴
Rank: 2
等 级:论坛游民
帖 子:7
专家分:11
注 册:2011-12-28
收藏
得分:0 
你们说的都没看懂。。。程序有错吗?不就是char c;用%d收错了么?第五次输入数字是什么就是什么了(就算是char型只截取了int型的部分,最终c存的值变了(例如:第五次输入255,c的值用%d输出则为-1))。可是我还是看不出楼主给出的这个题是要干嘛。。。。特别是还弄了个循环,更理解不了。
我尝试过直接输入一个字符(如输入:a),结果直接跳出循环输出乱码(%c格式输出)。这个我是理解为:输入的a为char型,程序收到回车后一直执行语句,直到找到有收取char的语句(结果它没找到,直接罢工。把程序执行完毕了。)。。
说实话。。。这题,我还是看不懂。谁解释下(通俗点哈哈。)
2011-12-29 13:41
碧螺春能解渴
Rank: 2
等 级:论坛游民
帖 子:7
专家分:11
注 册:2011-12-28
收藏
得分:0 
补句。14楼的说明了什么?

第五次输入的为:5

输出格式为:%c

最后输出的没错啊。。。程序不是正常的么?
2011-12-29 13:46
C、Gege
Rank: 2
等 级:论坛游民
帖 子:20
专家分:40
注 册:2011-12-24
收藏
得分:0 
回复 楼主 cnfarer
我觉得后果是直接退出执行界面
scanf("%d",&c);改为 scanf("%c",&c);
而且在输入完一个字符后按回车也相当与又输进一个字符;
应该在scanf("%c",&c);后加一个接住回车的语句;
不知对不对?

2011-12-29 14:16
快速回复:简单问题,高手莫进
数据加载中...
 
   



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

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