質問 |
||
| QNo.4017729 | C言語の問題 | |
|---|---|---|
| 質問者:jmpt110 |
C言語の問題ができません。 誰か教えてください。 「複数の人の平均年齢を求めるプログラムを作成せよ。最後の人の年齢を入力した後には、負の数を入力するものと約束する。for構文を用いて各人の年齢の読み込みと加算を順次行ない、負の数が入力されたらこれを判定条件としてforループを抜け平均年齢を求めるプログラムにせよ。」 このような問題です。なるべく早くどなたか回答してもらえるととても助かります。 |
|
困り度:
|
||
| 質問投稿日時: 08/05/12 22:06 |
||
回答 |
|
| ANo.4 | コンパイルエラーや出力メッセージ(平気年齢→平均年齢)の誤りは 修正していただくとして、最大の問題は、 負数の入力によって途中でループを抜けることがあるにもかかわらず、人数が常に num_per であるとみなして平均値を計算しているところにあります。 |
|---|---|
| 回答者:asuncion | |
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/05/12 23:36 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.3 | がると申します。 うん特に丸投げでもないようなので。 ヒント。 人数を取得するところのscanfがおかしいです。引数をよ〜〜く見てみてください。 for文のところ。コンパイルエラーでますよね? よ〜く見てみてください。不等号式の左辺に足りないものはありませんか? 最後の結果のprintf、その変数であってますか? ほか色々突っ込むところはありますが。とりあえず、上述の3つを修正すれば、最低限動くかと思います。 頑張ってください ^^ |
|---|---|
| 回答者:galluda | |
| 種類:回答 どんな人:専門家 自信:自信あり |
|
| 回答日時: 08/05/12 23:18 |
|
| |
| この回答へのお礼 | 丁寧な回答ありがとうございます。 このヒントを参考に頑張ってみます。^^b |
回答 |
|
| ANo.2 | 課題の丸投げは、禁止事項です。 問題ができないなら、もっと頑張るか諦めるかしてください。 |
|---|---|
| 回答者:okazaki0ko | |
| 種類:アドバイス どんな人:一般人 自信:自信あり |
|
| 回答日時: 08/05/12 22:33 |
|
| |
| この回答への補足 | 丸投げしたのではないのですが・・・ 説明不足ですいません #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; } このように作ったのですがうまくいきません。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.1 | こちら↓のANo.1と同じですが(汗 http://okwave.jp/qa4017757.html せめて、どこまで書けているか補足してください。 #一から全部書いてくれというわけじゃないのでしょう?添削であれば回答も付きますが・・ |
|---|---|
| 回答者:shimix | |
| 種類:アドバイス どんな人:経験者 自信:参考意見 |
|
| 回答日時: 08/05/12 22:32 |
|
| |
| この回答への補足 | #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; } |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |