[PAT]求集合数据的均方差(15)

时间:2023-03-09 20:10:23
[PAT]求集合数据的均方差(15)
#include "stdio.h"
#include "malloc.h"
#include "math.h"
int *getinput(int len);
double calc(int *data,int len);
int main()
{
int len=;
int *data;
double val=;
scanf("%d",&len);
data=getinput(len);
val=calc(data,len);
printf("%.5f",val);
return ;
}
int *getinput(int len)
{
int *p=(int *)malloc(len*sizeof(int));
int i;
for(i=;i<len;i++)
{
scanf("%d",p+i);
}
return p;
}
double calc(int *data,int len)
{
double sum=;
double avg=;
double val=;
double temp=;
int i=;
for(;i<len;i++)
{
sum+=data[i];
}
avg=sum/len;
for(i=;i<len;i++)
{
temp=data[i]-avg;
val+=(temp*temp);
}
sum=val/len;
sum=sqrt(sum);
return sum;
}