• 締切済み

C言語の問題

C言語の問題ができません。 誰か教えてください。 「複数の人の平均年齢を求めるプログラムを作成せよ。最後の人の年齢を入力した後には、負の数を入力するものと約束する。for構文を用いて各人の年齢の読み込みと加算を順次行ない、負の数が入力されたらこれを判定条件としてforループを抜け平均年齢を求めるプログラムにせよ。」 このような問題です。なるべく早くどなたか回答してもらえるととても助かります。

みんなの回答

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

コンパイルエラーや出力メッセージ(平気年齢→平均年齢)の誤りは 修正していただくとして、最大の問題は、 負数の入力によって途中でループを抜けることがあるにもかかわらず、人数が常に num_per であるとみなして平均値を計算しているところにあります。

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.3

がると申します。 うん特に丸投げでもないようなので。 ヒント。 人数を取得するところのscanfがおかしいです。引数をよ~~く見てみてください。 for文のところ。コンパイルエラーでますよね? よ~く見てみてください。不等号式の左辺に足りないものはありませんか? 最後の結果のprintf、その変数であってますか? ほか色々突っ込むところはありますが。とりあえず、上述の3つを修正すれば、最低限動くかと思います。 頑張ってください ^^

jmpt110
質問者

お礼

丁寧な回答ありがとうございます。 このヒントを参考に頑張ってみます。^^b

回答No.2

課題の丸投げは、禁止事項です。 問題ができないなら、もっと頑張るか諦めるかしてください。

jmpt110
質問者

補足

丸投げしたのではないのですが・・・ 説明不足ですいません #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)
回答No.1

こちら↓のANo.1と同じですが(汗   http://okwave.jp/qa4017757.html せめて、どこまで書けているか補足してください。 #一から全部書いてくれというわけじゃないのでしょう?添削であれば回答も付きますが・・

jmpt110
質問者

補足

#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; }