bool变量,条件选择执行,请教高手帮忙

tiangtangcao 2009-10-21 10:16:41
#include<stdio.h>
#include<iostream.h>
int main()
{
int s=0,g=0;
cin>>s;
cin>>g;
if(((96<s<123))&&(g<48||g>122))
s=1111111;
else if((47<s<58)&&(90<g<97))
s=2222222;
else if((64<s<91)&&(57<g<65))
s=3333333;
cout<<s;

}

当输入s为80,g为60时,为什么s输出为2222222????
...全文
113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cphj 2009-10-21
  • 打赏
  • 举报
回复
C/C++中,96 <s <123这种写法和数学上的意义完全不同
xylicon 2009-10-21
  • 打赏
  • 举报
回复
一般都要避免 96 <s <123 这种数学的写法。

应该改成 96 <s && s <123
ArmStronger 2009-10-21
  • 打赏
  • 举报
回复
if(((96<s && s>123))&&(g<48||g>122)) 
s=1111111;
else if((47<s && s<58)&&(90<g &&g <97))
s=2222222;
else if((64<s && s<91)&&(57<g &&g <65))
s=3333333;
Smile_Tiger 2009-10-21
  • 打赏
  • 举报
回复
(47<s <58) 这种写法?第一次见到

正确的写法是 (47<s && s < 58)

(47<s <58) 的运算过程是使这样的:

s = 80
首先计算47<s,得到1(真)
然后计算1<58,得到1(真)
ArmStronger 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mengde007 的回复:]
80大于47为真,所以为1;1是小于58的;后面的道理相同;
[/Quote]
就是,楼主的判断条件 写法风格不好。最好分开写
mengde007 2009-10-21
  • 打赏
  • 举报
回复
80大于47为真,所以为1;1是小于58的;后面的道理相同;

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧