, num);
printf("\n偏差为:%0.2f\n\n", dev);
max_min(grade, num);
return 0;
}
//sum()函数声明
float total(float grade[], int num) //求总分
{
int i;
float sum=0.0;
for(i=0; i {
sum+=grade[i];
}
return sum;
}
//average()函数声明
float average(float sum, int num) //求平均分
{
float ave;
ave=sum/num;
return ave;
}
//deviation()函数声明
float deviation(float grade[], float ave, int num) //求偏差
{
int i;
float s=0.0;
float dev;
for(i=0; i {
s=s+(grade[i]-ave)*(grade[i]-ave);
}
dev=sqrt(s/(num-1));
return dev;
}
//max_min()函数声明
void max_min(float grade[], int num)
{
int i;
int j=0;
int l=0;
int max_num[100];
int min_num[100];
float max;
float min;
max=min=grade[0];
for(i=0; i {
if(max< grade[i])
{
max= grade[i]; //求最大值
}
if(min> grade[i])
{
min= grade[i]; //求最小值
}
}
for(i=0; i {
if(max== grade[i])
{
max_num[j++]=i; //记录最最大值的学号
}
if(min== grade[i])
{
min_num[l++]=i; //记录最最小值的学号
}
}
printf("最高分为:%0.2f\n", max);
printf("最高分的学号有:");
for(i=0; i {
printf("%d", max_num[i]);
if(i {
printf(",");
}
}
printf("\n\n");
printf("最低分为:%0.2f\n", min);
printf("最低分的学号有:");
for(i=0; i {
printf("%d", min_num[i]);
if(i {
printf(",");
}
}
printf("\n");
}
