| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 878 人关注过本帖
标题:C菜鸟提问,谢谢回答
只看楼主 加入收藏
蒯羊羊
Rank: 2
等 级:论坛游民
帖 子:7
专家分:11
注 册:2010-3-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
C菜鸟提问,谢谢回答
输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
标准答案是
#include<stdio.h>
void main()   
{
    char ch;
    scanf("%c",&ch);
    ch=(ch>='A'&&ch<='Z')?(ch+2):ch;
    printf("%c\n",ch);
}


我把其中这一句(ch>='A'&&ch<='Z')改成了‘A'<=ch<='Z’,为什么就不对了呢?谢谢正确回答

搜索更多相关主题的帖子: 提问 
2010-07-26 15:30
哥只是传说
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2010-7-18
收藏
得分:0 
'A'<=ch<='Z’//不能这样比较,所以程序不通过
2010-07-26 15:52
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:10 
回复 楼主 蒯羊羊
'A'<=ch<='Z’从语法上讲是没问题的,但运算结果并不像数学里面的不等式那样,以ch='a'为例看看运算结果。从左至右运算,‘A'<=ch值为1,1再与'Z’做<=运算,1<='Z’值为1,于是ch=('A'<=ch<='Z’)?(ch+32):ch的结果为ch=ch+32=129
2010-07-26 16:25
diouf3
Rank: 1
等 级:新手上路
帖 子:17
专家分:5
注 册:2010-5-8
收藏
得分:0 
是从右向左 相当于'A'<=(ch<='Z') 如果你输入时B  则B<=Z为真返回结果为1,再判断'A'<=1是否成立,显然不成立!
2010-07-26 17:33
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
当然不可以这样比较,这是自右向左,你在心里代入一下呀,比如用户输入A时,或者调试一下就一目了然了

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-26 18:30
sh9264
Rank: 1
来 自:沧州
等 级:新手上路
帖 子:51
专家分:9
注 册:2009-10-24
收藏
得分:0 
你看一下,符号顺序表
2010-07-26 19:35
菜鸟auto
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:100
注 册:2010-7-23
收藏
得分:10 
呵呵 楼主和我犯了同样的错误。 下面的楼主可以参考下
   在C语言中  1<=x<10  是按  (1<=x)<10 处理的,先比较 1和x的大小:若1<=x,则  (1<=x)值为1;否则为0;。再将 0 或 1  与 10 比较。
按你的程序  1<=x 值为1,与 10 比较 结果还是真,即为1;(其实只要你输一个大于 1 的数 程序 都按,y=2*x-1处理);
若想得到你想要的结果  1<=x<10  改为  (x >=1)&&(x<10 )就可以了
2010-07-26 22:03
Justfeeling
Rank: 2
等 级:论坛游民
帖 子:26
专家分:47
注 册:2010-2-15
收藏
得分:0 
C语言里面比较2次或2次以上就要用到逻辑运算符&&或||了
A'<=ch (ch<='Z’)已经比较过一次了,另外一半  <='Z’  (‘A'<=) 就不能按照 ch<'Z’(‘A'<=ch)来理解了
2010-07-26 22:37
m591235759
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-10-18
收藏
得分:0 
  学习了
2010-07-28 04:13
快速回复:C菜鸟提问,谢谢回答
数据加载中...
 
   



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

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