[ create a new paste ] login | about

Link: http://codepad.org/IklyuhM1    [ raw code | output | fork ]

C, pasted on Jan 6:
#include <stdio.h>
#include <math.h>

int input(float data[], int max) {
	int i;
	for(i = 0; i < max && i < 100; i ++) {
		printf("データを一つ入力してください: ");
		if (scanf("%f",&data[i]) != 1) break;
		if (data[i] < 0.0) break;
	}
	return i;
}

float average(float data[], int n) {
	float a = 0.0;
	int i;
	for(i = 0; i < n; i ++) {
		a += data[i];
	}
	return a / n;
}

float variance(float data[], int n) {
	float x = average(data, n);
	int i;
	float a = 0;
	for(i = 0; i < n; i ++) {
		a += pow(x - data[i], 2.0f);
	}
	return a / (n - 1);
}

float max(float data[], int n) {
	int i;
	float m = 0.0;
	for(i = 0; i < n; i ++) {
		if (m < data[i]) m = data[i];
	}
	return m;
}

int main(void){
	float d[100];	//処理するデータは最大100個まで
	int n;
	double s;
	n = input(d, 100);				// データの入力.実際に入力されたデータの個数をnに入れておく
	printf("データ数は%dです\n", n);
	printf("平均値は%fです\n", average(d, n));		// 平均値の計算と表示
	s = variance(d, n);								// 不偏分散の計算
	printf("不偏分散は%fです\n", s);				// 不偏分散値の表示
	printf("確率誤差は%fです\n", 0.6745*sqrt(s/n));	// 確率誤差の計算と表示

	/* 二問目 */
	printf("最大値は%fである\n",max(d, n));
}


Output:
1
2
3
4
5
6
7
データを一つ入力してください: データ数は0です
平均値はnanです
不偏分散は-0.000000です
確率誤差はnanです
最大値は0.000000である

Exited: ExitFailure 30


Create a new paste based on this one


Comments: