第8章 応用問題の解説

出題ページ

最初は平均値も整数で求めるプログラム. 説明はコメントを見てもらえばわかるが, 注意する点としては



#include <stdio.h>

#define MAXLINE 256

int main(void);

int main(void)
{
  int ndata;			/* データの件数をかぞえるため */
  int sum;			/* 合計を保持 */
  int av;			/* 平均値を格納する - ここでは整数で */

  char buffer[MAXLINE];		/* 入力読み込み用 */
  int data;			/* 一件の入力データ */

  ndata = 0;			/* データ件数をリセット */
  sum = 0;			/* 合計もリセット */

  gets(buffer);			/* 先頭のデータを読んでおく */
  data = atoi(buffer);

  while(data != -1){		/* -1 にならない限り繰り返す */
    sum = sum + data;		/* 合計に足しこむ */
    ndata++;			/* データ件数を更新 */

    gets(buffer);		/* 次のデータを読む */
    data = atoi(buffer);
  }

  av = sum / ndata;		/* 平均の計算 */

  printf("Sum=%d\n", sum);	/* 出力 */
  printf("Average=%d\n", av);
}


つぎに, 平均値を整数ではなく小数点以下まで求める方法.