第9回演習の解答例


成績データは以下に示す表を使用せよ.


(1)整数型配列に成績データである得点を入力し,合計値と平均点を表示するプログラムを作成せよ.


#include <stdio.h>
 
void main()
{
	int i, data[10];
	float sum, ave;

	sum = 0.0;

	for(i=0; i<10; i++){
		printf("番号%d:", i+1);
		scanf("%d", &data[i]);
		
		sum += (float)data[i];
	}

	ave = sum/10.0;

	printf("合計値=%.0f¥n",sum);
	printf("平均点=%.1f¥n",ave);
}

(2) 次に分散を計算し,表示するプログラムを作成せよ.


#include <stdio.h>
 
void main()
{
	int i, data[10];
	float sum, ave, variance;

	sum = 0.0;

	for(i=0; i<10; i++){
		printf("番号%d:", i+1);
		scanf("%d", &data[i]);
		
		sum += (float)data[i];
	}

	ave = sum/10.0;

	variance = 0.0;

	for(i=0; i<10; i++){
		variance += ((float)data[i]-ave)*((float)data[i]-ave)/10.0;
	}

	printf("分散=%.2f¥n", variance);
}

(3) 偏差値を計算し,それぞれの番号の得点と偏差値を全て表示するプログラムを作成せよ.


#include <stdio.h>
#include <math.h>
 
void main()
{
	int i, data[10];
	float sum, ave, variance, deviation, T_score;

	sum = 0.0;

	for(i=0; i<10; i++){
		printf("番号%d:", i+1);
		scanf("%d", &data[i]);
		
		sum += (float)data[i];
	}

	ave = sum/10.0;
	
	variance = 0.0;

	for(i=0; i<10; i++){
		variance += ((float)data[i]-ave)*((float)data[i]-ave)/10.0;
	}

	deviation = sqrt( variance );
	
	printf("¥n番号¥t点数¥t偏差値¥n");
	for(i=0; i<10; i++){
		T_score = 10.0*((float)data[i]-ave)/deviation + 50.0;
		printf("%d¥t%d¥t%.2f¥n", i+1, data[i], T_score);
	}
}

(4) 最高点と最低点を表示するプログラムを作成せよ.


#include <stdio.h>
 
void main()
{
	int i, data[10], max, min;

	max = 0;
	min = 100;

	for(i=0; i<10; i++){
		printf("番号%d:", i+1);
		scanf("%d", &data[i]);
		
		if(max < data[i]){
			max = data[i];
		}
		
		if(min > data[i]){
			min = data[i];
		}
	}

	printf("最高点=%d¥n", max);
	printf("最低点=%d¥n", min);
}