| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 784 人关注过本帖
标题:这段程序是什么意思
只看楼主 加入收藏
ccmelomelo
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2010-10-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
这段程序是什么意思
#include<stdio.h>
void main(void)
{
char a,b;
scanf("%3c%4c",&a,&b);
printf("C1=%c,C2=%c",a+1,b-1);
getch();
}
如果输入ABCDEFGH,为什么输出结果是C1=B,C2=C?
2010-10-24 13:05
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:20 
%3c表示输入占三位,取第一位,于是a='A',b='D',C1=a+1='B',C2=b-1='C'

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-10-24 13:23
MrBluer
Rank: 4
等 级:业余侠客
威 望:1
帖 子:120
专家分:263
注 册:2010-10-23
收藏
得分:0 
%3c表示输入的是'A'后‘B''C'的位置一次被跳过,下一次读入的就是'D'了。然后在ASCII中十进制运算后就是c1=a+1='B',C2=b-1='C'
2010-10-24 13:32
ccmelomelo
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2010-10-24
收藏
得分:0 
回复 3楼 MrBluer
不好意思啊,我结贴了才看到。
2010-10-24 13:37
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
别这么轻意的下结论。不同编译器得到的结果不一定相同。我用gcc就得不到这样的结果。楼上几位有兴趣可以试一试。

重剑无锋,大巧不工
2010-10-24 13:48
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:0 
回复 5楼 beyondyf
其实这样的语句,本来就没有太大的意义,我只是根据楼主的测试用例推测的原理。%c,字符型数据的占位符,你要非得给它加个系数,不是自己找麻烦吗?

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-10-24 13:53
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 6楼 zghnxzdcx
首先,这个数字不是我给加上去的,我也从来没有这个做过,所以对楼主的问题产生了兴趣。
第二,楼主的问题是为什么这样做有这样的结果,而不是有没有必要这样做。这是两码事。就是因为实际中从没这么做过,所以才出现了这样的问题。
在两位回贴之前我就看到了题目,而且起初的想法也和两位一样,只是习惯性的想确证一下所以在GCC里实际编译了一下这段代码,结果确是另一个结果。之后改变各个数字做了些试验也没有找到什么规律。
楼上言之凿凿的分析我还以为实际验证过,原来只是推理。
问一下楼主,你用的是什么编译器?

重剑无锋,大巧不工
2010-10-24 14:07
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:0 
回复 7楼 beyondyf
呵呵,我应该向你学习啊

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-10-24 14:10
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:0 
回复 7楼 beyondyf
GCC,Linux的编译器是吧?功能貌似很强大啊,可以编译很多种的语言,不过习惯感觉这样的东西有非专业的嫌疑。

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-10-24 14:15
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 9楼 zghnxzdcx
非专业的嫌疑?呵呵,这是我第一次听到这样的评价。五年前在Sun服务器上做项目我用的就是这个编译器,后来转到.net平台下做项目开始用C#直到现在。

重剑无锋,大巧不工
2010-10-24 14:31
快速回复:这段程序是什么意思
数据加载中...
 
   



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

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