- 締切済み
C言語の問題
C言語の問題ができません。 誰か教えてください。 「複数の人の平均年齢を求めるプログラムを作成せよ。最後の人の年齢を入力した後には、負の数を入力するものと約束する。for構文を用いて各人の年齢の読み込みと加算を順次行ない、負の数が入力されたらこれを判定条件としてforループを抜け平均年齢を求めるプログラムにせよ。」 このような問題です。なるべく早くどなたか回答してもらえるととても助かります。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- asuncion
- ベストアンサー率33% (2127/6289)
コンパイルエラーや出力メッセージ(平気年齢→平均年齢)の誤りは 修正していただくとして、最大の問題は、 負数の入力によって途中でループを抜けることがあるにもかかわらず、人数が常に num_per であるとみなして平均値を計算しているところにあります。
- galluda
- ベストアンサー率35% (440/1242)
がると申します。 うん特に丸投げでもないようなので。 ヒント。 人数を取得するところのscanfがおかしいです。引数をよ~~く見てみてください。 for文のところ。コンパイルエラーでますよね? よ~く見てみてください。不等号式の左辺に足りないものはありませんか? 最後の結果のprintf、その変数であってますか? ほか色々突っ込むところはありますが。とりあえず、上述の3つを修正すれば、最低限動くかと思います。 頑張ってください ^^
- okazaki0ko
- ベストアンサー率15% (37/238)
課題の丸投げは、禁止事項です。 問題ができないなら、もっと頑張るか諦めるかしてください。
補足
丸投げしたのではないのですが・・・ 説明不足ですいません #include <stdio.h> int main(void) { int age,sum=0,n,num_per; double average; printf("人数?"); scanf("%d",num_per); for(n=1;<=num_per;n++){ printf("年齢?"); scanf("%d",&age); if(age<0) break; sum+=age;} average=(double)sum/(double)num_per; printf("平気年齢 %7.2lf\n",age); return 0; } このように作ったのですがうまくいきません。
- shimix
- ベストアンサー率54% (865/1590)
こちら↓のANo.1と同じですが(汗 http://okwave.jp/qa4017757.html せめて、どこまで書けているか補足してください。 #一から全部書いてくれというわけじゃないのでしょう?添削であれば回答も付きますが・・
補足
#include <stdio.h> int main(void) { int age,sum=0,n,num_per; double average; printf("人数?"); scanf("%d",num_per); for(n=1;<=num_per;n++){ printf("年齢?"); scanf("%d",&age); if(age<0) break; sum+=age;} average=(double)sum/(double)num_per; printf("平気年齢 %7.2lf\n",age); return 0; }
お礼
丁寧な回答ありがとうございます。 このヒントを参考に頑張ってみます。^^b