c语言求助 输入n个学生的考试成绩,求出其中最高分、最低分以及超过平均分的人数(使用动态分配)
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,loop;
int *score;
int max,min,average;
int num;
printf("请输入学生人数:");
scanf("%d",&n);
score = (int *)malloc(sizeof(int) *n);
if(score == NULL)
{
exit(0);
}
for(loop = 0; loop < n; loop++)
{
scanf("%d",&score[loop]);
if(loop == 0)
{
max = min = average = score[0];
}
else
{
if(max < score[loop])
{
max = score[loop];
}
if(min > score[loop])
{
min = score[loop];
}
average += score[loop];
}
}
average /= n;
num = 0;
for(loop = 0; loop < n; loop++)
{
if(score[loop] > average)
{
num++;
}
}
printf("最高分为%d\n", max);
printf("最低分为%d\n", min);
printf("平均分为%d\n", average);
printf("超过平均分人数为%d\n", num);
free(score);
return 0;
}
追答
输入的时候要求10 20 30,是空格,不能使用,逗号,如果想使用,逗号,第二个scanf需要修改
#include <stdio.h>
#include <stdlib.h>
int main()
{
。。。。省略
for(loop = 0; loop < n; loop++)
{
scanf("%d,",&score[loop]);
if(loop == 0)
{
max = min = average = score[0];
}
else
{
if(max < score[loop])
{
max = score[loop];
}
if(min > score[loop])
{
min = score[loop];
}
average += score[loop];
}
}
省略。。。、。
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询