我需要編寫一個程序,經過for
循環4次,並獲得用戶輸入。它可以是+
,-
,*
或/
。否則,它將打印出invalid operator
。當我運行這個程序,並把它放在+
,它輸出f = 30
(我想要的),但它後面輸出無效的操作權,甚至沒有我插入另一個字符。然後輸入-
,輸出invalid operator
兩次。有人可以解釋爲什麼會這樣嗎?當我使用getchar()時,switch語句不能正常工作?
#include <stdio.h>
#pragma warning(disable : 4996)
void main() {
char ch;
int f, a = 10, b = 20;
for (int i = 0; i < 4; i++) {
ch = getchar();
switch (ch) {
case '+': f = a + b; printf("f = %d\n", f);
break;
case '−': f = a - b; printf("f = %d\n", f);
break;
case '*': f = a * b; printf("f = %d\n", f);
break;
case '/': f = a/b; printf("f = %d\n", f);
break;
default: printf("invalid operator\n");
break;
}
}
}
首先你可能要檢查什麼['getchar'(http://en.cppreference.com/w/c/io/getchar)* *實際收益爲類型。 *和*處理可能的錯誤。 –