/*
使用数组实现10名学生的成绩录入,并输出这10名学生中成绩的
最高分
最低分
平均分
按照分数从大到小排序
思考:
如何实现从小到大排序?
如果学院有5个班,每个班30人,如何处理?
求所有成绩中的最高分是哪个班的,第几个学生,如何处理?
*/
#include
#define NUM 10
int main(int argc, const char * argv[])
{
//使用数组实现10名学生的成绩录入并输出
int score[NUM];
for (int i = 0; i < NUM; i ++)
{
printf("请输入第%d名学生的成绩:",i+1);
scanf("%d",&score[i]);
}
for (int i = 0; i < NUM; i ++)
{
printf("\n第%d名学生的成绩为:%d",i+1,score[i]);
}
//最高分
int MAX = score[0];
int idh = 1;
for (int i = 0; i < NUM; i ++)
{
if (score[i]>=MAX)
{
MAX = score[i];
idh = i + 1;
}
}
printf("\n\n最高分为第%d名学生为%d分\n",idh,MAX);
//最低分
int MIN = score[0];
int idl = 1;
for (int i = 0; i < NUM; i ++)
{
if (score[i]<=MIN)
{
MIN = score[i];
idl = i + 1;
}
}
printf("\n最低分为第%d名学生为%d分\n",idl,MIN);
//平均分
float sum = 0;
for (int i = 0; i < NUM; i ++)
{
sum = sum + score[i];
}
printf("\n学生的平均成绩为:%f\n",sum/NUM);
//按照分数从大到小排序
for (int i = 0; i < NUM - 1; i ++)
{
for (int j = i + 1; j < NUM; j ++)
{
if (score[i] <= score[j])
{
int t =score[i];
score[i] = score[j];
score[j] = t;
}
}
}
for (int i = 0; i < NUM; i ++)
{
printf("\n第%d名学生的成绩为:%d",i+1,score[i]);
}
return 0;
}
c语言输入四个成绩求最高分最低分 数组实现学生成绩录入 求最高分 最低分 平均分和排序...