• ベストアンサー

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

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

  • ベストアンサー
  • mmaaeeta
  • ベストアンサー率46% (12/26)
回答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は実行しないとか) を追加すればよりベターだと思います。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答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); ですかね.

すると、全ての回答が全文表示されます。
  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

合計を計算する時にその次で人数を加算しておきます。 最後に合計を人数で割り平均を出します。

すると、全ての回答が全文表示されます。
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

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

すると、全ての回答が全文表示されます。
このQ&Aのポイント
  • 新しいチューナーでエントリーコードを入力しても未入力と表示される
  • 支払いは毎月しているが、エントリーコードが受け付けられない
  • ひかりTVのサービスでエントリーコードの入力に問題がある
回答を見る

専門家に質問してみよう