アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

テストの平均点をだすプログラムを作りたいのですが、合計を出すまではわかったのですが、ここから、平均を出すようにするにはどうすればよいですか。

A 回答 (4件)

#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は実行しないとか) を追加すればよりベターだと思います。
    • good
    • 0

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

ですかね.
    • good
    • 0

合計を計算する時にその次で人数を加算しておきます。


最後に合計を人数で割り平均を出します。
    • good
    • 0

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


sumをループ回数で割る。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!