题目要求:
某班有30人,现要评定奖学金,条件是成绩为前10名,请编写程序统计成绩位于前10名的学生。
(1)编写排序函数,完成30人成绩的降序排列;
(2)编写输入函数,完成数据的输入;
(3)编写输出函数,输出排序后的前10名学生;
(4)编写主函数,调用输入函数,调用排序函数,调用输出函数;
实现代码:
#include<stdio.h>
#define NUM 30
double s[NUM];
// 排序函数
void sortByGrade()
{
int i,j;
double t;
for(i=0;i<29;i++)
{
for(j=i;j<30;j++)
{
if(s[i]<s[j])
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
}
}
// 输入学生成绩
void getStudentGrade()
{
int i;
for(i=0;i<30;i++){
scanf("%lf", &s[i]);
}
}
// 输出前十名学生成绩
void printTheTenStuGrade()
{
int i;
for(i=0;i<10;i++)
{
printf("%.1f\n", s[i]);
}
}
int main()
{
getStudentGrade();
sortByGrade();
printTheTenStuGrade();
return 0;
}