为了账号安全,请及时绑定邮箱和手机立即绑定

为什么无论输入什么字符,都会加到letter上!?

为什么无论输入什么字符,都会加到letter上!?

C
慕勒3428872 2023-05-01 15:11:16
#include <stdio.h>void main(){ char c; int letter=0,space=0,number=0,other=0; while ((c=getchar())!='\n') { if (65<=c<=90||97<=c<=122)//为什么无论输入什么字符,都会加到letter上!? letter++; else if(c=' ') space++; else if(48<=c<=57) number++; else  other++; } printf("%d\n%d\n%d\n%d\n",letter,space,number,other); }
查看完整描述

2 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

(65<=c<=90||97<=c<=122)
这种写法,按照C语言的语法规则
第一步判断 65<= c 这个不论c为什么字符,都会返回true或者false,这两个值在C中为1或0

第二步判断 0 <= 90 或1 <= 90 ,返回 true

第三步执行 if 条件里的语句 (这里注意 || 操作,只要前面的返回true了,后面的是不会在执行)

接着继续....

查看完整回答
反对 回复 2023-05-03
?
DIEA

TA贡献1820条经验 获得超2个赞

你的代码还有问题啊

else if(c=' ')
    space++;else if(48<=c<=57)
    number++;

这里,判断相等应该是===只会赋值并且返回值,而if判断非零值永远是true。 还有就是那个连等问题了。以及代码风格也有些问题。 改正后应该如此

else if(c==' ') {
    space++;
}else if(48<=c&&c<=57) {
    number++;
}
查看完整回答
反对 回复 2023-05-03
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信