求方差(数组)

1. 直接撸

#include <stdio.h>
int main(void)
{
	int a[9] = {3,2,5,8,-1,4,7,6,9};
	double ave = 0.0, sum = 0.0;
	int len = sizeof(a) / sizeof(a[0]);
	for(int i = 0; i < len; i++) {
		ave += a[i];
	}
	ave /= len;
	for(int i = 0; i < len; i++) {
		sum += (a[i] - ave)*(a[i] - ave);
	}
	sum /= len;
	printf("%.2lf", sum);
	return 0;
 } 

2. 用函数

#include <stdio.h>
double arryave( int a[], int len);
double arryfc( int a[], double ave, int len);
int main(void)
{
	int a[9] = {3,2,5,8,-1,4,7,6,9};
	double ave, fc;
	int len = sizeof(a) / sizeof(a[0]);
	ave = arryave(a, len);
	fc = arryfc(a, ave, len);
	printf("%.2lf", fc);
	return 0;
}
double arryave( int a[], int len) {
		double ave = 0.0;
		for(int i = 0; i < len; i++) {
		ave += a[i];
	}
	ave /= len;
	return ave;
} 
double arryfc( int a[], double ave, int len) {
	double sum = 0.0;
		for(int i = 0; i < len; i++) {
		sum += (a[i] - ave)*(a[i] - ave);
	}
	sum /= len;
	return sum;
}
发布了157 篇原创文章 · 获赞 187 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45773503/article/details/105470228