-PR-
解決済み

c言語で平均をだす

  • すぐに回答を!
  • 質問No.876796
  • 閲覧数4623
  • ありがとう数1
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 5% (24/417)

#include<stdio.h>

int main(void)
{
int num;
int sum;

printf("テストの点数を入力してください。\n");
do{
scanf("%d",&num);
sum+=num;
}while(num);

printf("テストの合計点は%dです\n",sum);

return 0;
}

テストの平均点をだすプログラムを作りたいのですが、合計を出すまではわかったのですが、ここから、平均を出すようにするにはどうすればよいですか。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル8

ベストアンサー率 46% (12/26)

#include<stdio.h>

int main(void)
{
int num;
int sum;
int count;
sum=0;
count=0;

printf("テストの点数を入力してください。\n");
do{
scanf("%d",&num);
sum+=num;
count+=1;
}while(num>=0);

count-=1;
printf("テストの合計点は%dです\n",sum);
printf("テストの平均点は%dです\n",sum/count);

return 0;
}

テストだと0点の場合もあると思うので、マイナスの数値を入れると終わりに変えてあります。あと、sumは初期値が0とは限らないので、いちおう初期化をしています。(普通は大丈夫ですけど)
あとは1個も点数を入れなかった場合の処理 (countが0なら平均値のprintfは実行しないとか) を追加すればよりベターだと思います。

その他の回答 (全3件)

  • 回答No.1
レベル14

ベストアンサー率 65% (1020/1553)

何回ループしたかを数えるカウンタの変数を追加し、
sumをループ回数で割る。


  • 回答No.2
レベル14

ベストアンサー率 30% (2593/8599)

合計を計算する時にその次で人数を加算しておきます。
最後に合計を人数で割り平均を出します。
  • 回答No.4
レベル14

ベストアンサー率 23% (3656/15480)

#3 のプログラムでほとんどあっているんですが,
細かいことをいうと do~while を抜けたあとで
sum -= num;
が必要ですね.

もしくは

sum = 0;
count = 0;
while (scanf("%d", &num) > 0 && num >= 0) {
sum += num;
count++;
}
printf("%lf\n", (double)sum / count);

ですかね.
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


抽選で合計100名様にプレゼント!

ピックアップ

ページ先頭へ