c++ for迴圈我想輸入未知個數的字元判斷輸入的是什麼,for括號裡面怎麼寫啊?
- 2022-12-30
加減乘除的字元前後都要加上單引號才代表字元,否則編譯器會理解為運算子,會出錯。
最後一個 else if 後面的表示式是錯的,“非”(!)的優先順序比“等於”(==)高,運算出來的不是你想要的結果,你想說的應該是:
(!(x == ‘+’) !(x == ‘?’) !(x == ‘*’) !(x == ‘/’))
或者
(x != ‘+’ x != ‘?’ x != ‘*’ x != ‘/’ )
不過,這個 else if 其實是不必要的,因為只有輸入的不是前面的加減乘除,才有可能到這裡,這個條件已經測試了,所以這裡用一個簡單的 else 就可以了。
另外,真實要運算的部分不能放在雙引號內,還要記得每個語句後面加分號。
後面一段程式碼應該改成這樣:
if (x == ‘+’)
cout“結果:”a+b;
else if (x == ‘?’)
cout“結果:”a?b;
else if (x == ‘*’)
cout“結果:”a*b;
else if (x == ‘/’)
cout“結果:”a/b;
else
cout“對不起,你的要求已超出我力所能及的範圍!\n”;
return (0);
補充回答:
main 和 std 都只是識別符號,不是關鍵詞,不變顏色是正確的。
你再檢查一下有沒有括號或引號不配對的?
還有,檢查一下有沒有括號打錯了中文全形的括號。
用while
for(;scanf(“%d”,&a)!=EOF;)
你試試
你好!
你是想一直輸下去還是輸入指定的字元結束呢?
如果一直輸下去那就不用設
如果想輸入指定字元結束,你就設定 != 那個指定的支付就ok啦。
for(; (ch=getchar()) != ‘c’;)
打字不易,採納哦!
字元的ascii碼