胡万春鬼车:C语言2级问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 19:41:38
#include <stdio.h>

float fun(float x[], int n)
{ int j; float xa=0.0, s;
for (j=0; j<n; j++ )
xa += x[j]/n;
s = 0;
for (j=0; j<n; j++ )
s += (x[j]-xa)*(x[j]-xa)/(j+1);
return s;
}
main ( )
{ float x[100] = {193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579, 196.763};
printf("%f\n", fun (x, 8));
}

这个程序其实很简单!
下面我给你分析一下:
float fun(float x[], int n)
这是用户自己定义了一个函数,其功能是求方差!
for (j=0; j<n; j++ )
xa += x[j]/n;
这是用来求平均数的,相当于eve(平均数)=(193.199+195.673+195.757+196.051+196.092+196.596+196.579+196.763)/8
对于for (j=0; j<n; j++ )
s += (x[j]-xa)*(x[j]-xa)/(j+1);
就相当于 每一项减去这个eve(平均数)的平方相加再处以8!
也就是方差!
所以在最后的主调函数中调用这个函数,也就是求方差!
main ( )
{ float x[100] = {193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579, 196.763};
printf("%f\n", fun (x, 8));
}
也就是求193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579, 196.763的方差!

是不是快考计算机二级了!加油啊!

这个题 好像太简单了哦
不过我也考二级C的
谢谢你提供这题
自己慢慢一下哦,现在别个给你讲了你知道了
可考试时谁给你讲呢
所以你就自己想一下
看看书什么的

类型不对,换double型

运行正常呀?在你机子上提示什么错误?