c语言编程求救,急!!!!

来源:百度知道 编辑:UC知道 时间:2024/07/06 20:19:06
编写一个函数,这个函数同时求出n个学生成绩的最高分,最低分,平均分以及超过平均分的人数,并编写主函数完成:1)输入n个学生的成绩 2)调用此函数进行统计 3)输出统计结果。(要求使用动态分配)

#include <stdio.h>
#include <malloc.h>
void fun(float *score,int len,float *max,float *min,float *avg,int *num)
{
int i;
*avg=0,*min=score[0],*max=score[0],*num=0;
for(i=0;i<len;i++)
{
*avg+=score[i];
if(score[i]>*max)
*max=score[i];
if(score[i]<*min)
*min=score[i];
}
*avg/=len;
for(i=0;i<len;i++)
if(score[i]>*avg)
++*num;
}
main()
{
int len,num,i;
float *score,max,min,avg;
puts("输入学生人数:");
scanf("%d",&len);
score=(float*)malloc(len*sizeof(float));
puts("输入学生成绩");
for(i=0;i<len;i++)
scanf("%f",score+i);
fun(score,len,&max,&min,&avg,&num);
printf("最高分:%f 最低分:%f 平均分:%f 平均分以上人数:%d",max,min,avg,num);
free(score);
}

详见谭浩强版的c程序语言上机指导一书,我记得答案好像挺长的

哈哈还有比我还菜的 这都不会
啊哈哈哈

思路:
基本上都是通过循环来计算。