直接上代码:
#include <stdio.h>#include <conio.h>
#include <math.h>
double fangcha(double x[], int n){
//求数组x(具有n个元素)的方差:S=(<x^2>-<x>)^0.5
int i
double xaver=0.0, x2aver=0.0
for(i=0i<n++i){
xaver+=x[i] x2aver+=x[i]*x[i]
}
xaver/=n x2aver/=n //求x的平均、x^2的平均
return sqrt(x2aver-xaver*xaver)
}
int main(){
double x[5]
int i
printf("Input 5 datas:\n")
for(i=0i<5++i){
scanf("%lf",&x[i])
}
printf("\nFangCha S=%.4lf",fangcha(x,5))
printf("\nFinished!\n")
getch()
return 0
}
希望能帮助到你。
#include <stdio.h>int main ( void )
{
float *x, *p, E, D
int i, n
printf ( "n=" )
scanf ( "%d", &n )
p = x = (float*) malloc ( sizeof(float) * n )
E = D = 0.0
for ( i = ni >0i-- )
{
scanf ( "%f", p )
E += *p++
}
E /= n
p = x
for ( i = ni >0i-- )
{
float tmp
tmp = *p++ - E
D += tmp * tmp
}
D /= n
free ( x )
printf ( "%f", D )
return 0
}
由于没有指明数据的来源,下面就从文本文件"data.txt"中取出一些学生的身高数据,并计算平均值,方差和标准差!代码如下:
#include<stdio.h>
#include <math.h>
#define hh printf("\n===================================\n")
void main()
{
FILE *fp
float a[520],x,avr,fc,bzc,t,sum=0.0
int i,k=0
fp=fopen("D:\\data.txt","r")
if(fp==NULL)
printf("文件打开失败!\n")
else
{
printf("身高数据:\n")
fscanf(fp,"%f",&x)
while(x!=0)
{
a[k++]=x
printf("%.0f ",x)
sum+=x
fscanf(fp,"%f",&x)
}
avr=sum/k
sum=0
for(i=0i<ki++)
sum+=(a[i]-avr)*(a[i]-avr)
fc=sum/(k-1)
bzc=sqrt(fc)hh
printf(" 学生人数:%d\n",k)
printf(" 身高均值:%.2f\n",avr)
printf(" 身高方差:%.2f\n",fc)
printf("身高标准差:%.2f\n",bzc)
}
hh
fclose(fp)
}
扩展资料:
c语言的特点
1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
3、不同的变量类型可以用结构体(struct)组合在一起。
4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
5、部份的变量类型可以转换,例如整型和字符型变量。
6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。
7、预编译处理(preprocessor)让C语言的编译更具有弹性。