亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么無論輸入什么字符,都會加到letter上???

為什么無論輸入什么字符,都會加到letter上?。?/h1>
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 關注
  • 285 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號