#includedouble avescore(double *arr, int n)
{
double temp=0;
for (int i = 0;i < n;++i)
temp += arr[i];
return temp / n;
}
double Varianscore(double *arr, int n, double ave)
{
double temp=0;
for (int i = 0;i < n;++i)
temp += (arr[i]-ave)*(arr[i]-ave);
return temp / n;
}
void sort(double *arr, int n)
{
for (int i = 1;i < n;++i)
{
double key = arr[i];
int j = i - 1;
while (j >= 0 && key > arr[j])
{
arr[j + 1] = arr[j];--j;
}
arr[j + 1] = key;
}
}
int main()
{
int num,number=0,pate;
double ave, varian;
printf("请输入学生人数:");
scanf("%d", &num);
double *arr = (double *)malloc(sizeof(double)*num);
for (int i = 0;i < num;++i)
scanf("%lf", &arr[i]);
ave = avescore(arr, num);
printf("\n学生均值为:%lf", ave);
varian = Varianscore(arr, num, ave);
printf("\n学生成绩方差为: %lf", varian);
printf("\n不及格学生成绩为:");
for (int i = 0;i < num;++i)
if (arr[i] < 60)
{
printf("%lf ", arr[i]);
number++;
}
printf("\n 不及格学生比例为%lf\n", (double)number / (double)num);
sort(arr, num);
printf("排序后学生分数为:");
for (int i = 0;i < num;++i)
if (arr[i] < 60)
printf("%lf ", arr[i]);
system("pause");
return 0;
}