-PR-

解決済みの質問

質問No.876796
すぐに回答を!
すぐに回答を!
お気に入り投稿に追加する (0人が追加しました)
回答数4
閲覧数3860
c言語で平均をだす
#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;
}

テストの平均点をだすプログラムを作りたいのですが、合計を出すまではわかったのですが、ここから、平均を出すようにするにはどうすればよいですか。
投稿日時 - 2004-05-31 20:42:11

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

回答No.3
#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は実行しないとか) を追加すればよりベターだと思います。
投稿日時 - 2004-05-31 20:50:27
この回答を支持する
(現在0人が支持しています)

ベストアンサー以外の回答 (3)

回答No.4
#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);

ですかね.
投稿日時 - 2004-05-31 20:59:44
この回答を支持する
(現在0人が支持しています)
回答No.2
合計を計算する時にその次で人数を加算しておきます。
最後に合計を人数で割り平均を出します。
投稿日時 - 2004-05-31 20:47:38
この回答を支持する
(現在0人が支持しています)
回答No.1
何回ループしたかを数えるカウンタの変数を追加し、
sumをループ回数で割る。
投稿日時 - 2004-05-31 20:45:44
この回答を支持する
(現在0人が支持しています)
この質問は役に立ちましたか?
1人が「このQ&Aが役に立った」と投票しています
もっと聞いてみる

関連するQ&A

この他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する

同じカテゴリの人気Q&Aランキング

カテゴリ
C・C++
-PR-
-PR-

特集

背筋がゾクゾクする心霊体験を要チェック!

お城、ボート、ツリーハウス、ユニークな物件満載!

【期間限定】1ヶ月無料キャンペーン中!

同じカテゴリの人気Q&Aランキング

カテゴリ
C・C++
-PR-

ピックアップ

-PR-