whileループを使用して値をテストし、値(この場合はswitch文を使用して文字グレード)に適切な応答を返す簡単なコードを記述することになります。scanf入力のスイッチ
私の問題は、整数を含まない値をテストすることです。私はswitch文の前に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;
}
あなたはそのscanf
戻り1
だけではなく、ファイルの終わりをチェックするのをテストする必要があり、そのようなA.
また、 'scanf'が実際に' grades'を書いたかどうかを確認してください。 – Olaf
オラフ私はそれが私がそれをどうやって行方不明であると信じていますか? –
'scanf'のマニュアルページはどうですか? – Olaf