こんばんは。
専門学校の課題で分からない問題があり困っています。
以下の問題です。
点数を10点幅をランクに分け、その幅に何人いるかをカウントするプログラムを作成しなさい。
Ctrl+Zを入力することでキーボード入力を終了させる。
以下の配列を使用すること。
int count[11]; //点数カウントエリア
<実行結果>
点数を入力して下さい
25
56
65
80
73
66
^Z ←Ctrl+Zを入力すると左のようになる。
*******点数別分布表*******
0 : 0
10 : 0
20 : 1
30 : 0
40 : 0
50 : 1
60 : 2
70 : 1
80 : 1
90 : 0
100: 0
Ctrl+Zを判定する方法が分かりません・・。
現在のソースコードです。
配列を用いた点数ごとのランクわけ(?)について
Re: 配列を用いた点数ごとのランクわけ(?)について
もしかすると、EOF かどうかを判断するとうまくいくのではないか、
と勝手に想像しています。
と勝手に想像しています。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 配列を用いた点数ごとのランクわけ(?)について
#include <stdio.h>
#define N 5
int main(void)
{
int i, n, data[N + 1];
for (n = 0; n <= N; n++)
if (scanf("%d", &data[n]) != 1)
break;
if (n > N)
printf("データが多すぎる\n");
else if (n == N)
for (i = 0; i < n; i++)
printf("%d\n", data[i]);
else if (feof(stdin))
printf("データが足りない\n");
else
printf("数字ではない\n");
return 0;
}
6個の場合、4個の場合、数字でないものがある、
というテストをしてみるとどうなりますか?