本日の課題
2010.07.05

Back


1から10までの整数を乱数で10回発生させます.それを一度順に表示して,その 後,先頭から順に3つずつの平均を求めて,表示させます.10個の数値から3つず つの平均を順に求めていくので,得られる平均値の個数は8個となります.以下 のように表示するプログラムを作りましょう.

このように順次平均値を求めていくことを「移動平均」を取る,と言います.変 動の激しい測定値を平滑化するときなどに使用します.

   6  10   3   1   6   6   9   4   9   8
      6.3 4.7 3.3 4.3 7.0 6.3 7.3 7.0

解答用紙


解答例

/* ************************************************** */
/*                                                    */
/*      情報科学演習 C6 C7                            */
/*      レポート課題                                  */
/*      2010.7.5                                      */
/*                                                    */
/* ************************************************** */
/*                                                    */
/*      学生番号:                                    */
/*                                                    */
/*      氏名:                                        */
/*                                                    */
/* ************************************************** */
/*                                                    */
/*      この行以降に解答のプログラムを書くこと        */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main()
{
	srand((unsigned) time(NULL));
	
	int i, j, ary[10];
	float ave[8];
	
	for(i=0; i<=7; i++)
		ave[i] = 0;
	
	for(i=0; i<=9; i++){
		ary[i] = rand() % 10 + 1;
		printf("%4d", ary[i]);
	}
	
	printf("\n     ");
		
	for(i=0; i<=7; i++){
		for(j=i; j<=i+2; j++)		
			ave[i] += ary[j] / 3.0;
		
		printf("%4.1f", ave[i]);
	}
	
	printf("\n");
	
	return(0);
}


戻る