[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=0;
    int *data;
    double val=0;
    scanf("%d",&len);
    data=getinput(len);
    val=calc(data,len);
    printf("%.5f",val);
    return 0;
}
int *getinput(int len)
{
    int *p=(int *)malloc(len*sizeof(int));
    int i;
    for(i=0;i<len;i++)
    {
        scanf("%d",p+i);
    }
    return p;
}
double calc(int *data,int len)
{
    double sum=0;
    double avg=0;
    double val=0;
    double temp=0;
    int i=0;
    for(;i<len;i++)
    {
        sum+=data[i];
    }
    avg=sum/len;
    for(i=0;i<len;i++)
    {
        temp=data[i]-avg;
        val+=(temp*temp);
    }
    sum=val/len;
    sum=sqrt(sum);
    return sum;
}
原文地址:https://www.cnblogs.com/sunsoftresearch/p/4149533.html