- 締切済み
どこが間違っているのか教えてください。。
C言語の勉強をしています。 プログラムを作成してみましたが、うまくいきません。 どこが間違っているのか、なぜそうなるのか、教えていただけると助かります。 よろしくお願いします。 あるクラスの試験の点数を整数で繰り返し入力し、点数の合計と平均点を出力するプログラムを作成しなさい。 点数は、0点以上100点以下とし、この範囲外の点(0点未満または100点より大きい点)が入力されたときは、入力を終了し、点数の合計と平均点を出力する(最後に入力された範囲外の点は集計の対象としない)。 また、平均は小数点以下2桁まで出力する。 繰り返しの命令は、何を使ってもよい。 ▼実行例 点数:10 点数:100 点数:20 点数:35 点数:120 合計:165点 平均: 41.25点 ******************************************* 考えたプログラム #include<stdio.h> int main(void) { int ten,hito,goukei; double heikin; goukei=0; hito=0; while(1){ printf("¥n点数:"); scanf ("%d", &ten); if(ten<0||100<ten) break; goukei=goukei+ten; hito=hito+1; break; } printf("¥n合計:%d点",goukei); heikin=(double)goukei/(double)hito; printf("¥n平均:%.2lf点",heikin); }
- みんなの回答 (3)
- 専門家の回答
お礼
解決しました。ご指摘ありがとうございました。
補足
コンパイルすると、結果が実行例と同じようにならず、このようになります。 breakを外したり、いろいろやってみましたが、無限ループになったりします。 よろしくお願いします。 ▼実行を開始します ----PETA2が1回目の実行を開始します--自動入力値[10 100 20 35 120]- 点数: 合計:10点 平均:10.00点 ----PETA2が2回目の実行を開始します--自動入力値[10 50 0 -1]- 点数: 合計:10点 平均:10.00点 ▲実行を終了しました