我的任務是使用while循環編寫簡單的代碼來測試值並將相應的響應返回給值,在本例中使用switch語句的字母等級。使用scanf輸入切換
我的問題是測試一個不包含整數的值。我相信我可以在switch語句之前通過IF測試來解決問題。我正在尋找關於此語句措辭的幫助。
我知道我錯過了循環後我認爲是賦值IF的推薦。我也會接受關於如何檢查錯誤以及寫入錯誤和寫入異常代碼的建議。
此外,如果有人可以如此善良,你會向我解釋scanf
如何在輸入中分配一個值。我相信我的問題在於scanf
如何分配值。我不認爲我的代碼通過switch
與臨時值相比解析了真值。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int grades;
printf("Enter a value for grading in numeric form\n");
while ((scanf("%i", &grades)) != EOF) {
switch (grades) {
case 10:
case 9:
printf("A grade of %i is an A\n", grades);
break;
case 8:
printf("A grade of %i is an B\n", grades);
break;
case 7:
printf("A grade of %i is an C\n", grades);
break;
case 6:
printf("A grade of %i is an D\n", grades);
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
printf("A grade of %i is an F\n", grades);
break;
default:
printf("This is not a valid entry\n");
}
}
return 0;
}
如果試圖如A.
同時檢查'scanf'是否確實寫過'grades'。 – Olaf
Olaf我相信這就是我所缺少的,我該怎麼做? –
閱讀'scanf'手冊怎麼樣? – Olaf