这里采用的是选择排序,能够实现基本的功能,如果人数较多的话,还是要采用结构体和效率更高的排序算法。
#include<stdio.h>
int main()
{
int num[5] = {0}; // 学号
double score[5] = {0}; // 成绩
int i, j, k;
int temp;
double temp1;
for(i = 0; i < 5; i++)
{
printf("学号,成绩(用空格分开):");
scanf("%d %lf", &num[i], &score[i]);
}
for(i = 0; i < 4; i++)
{
k = i;
for(j = i+1; j < 5; j++)
{
if(score[j] > score[k])
{
k = j;
}
}
if(k != i)
{
temp = num[k];num[k] = num[i];num[i] = temp;
temp1 = score[k];score[k] = score[i];score[i] = temp1;
}
}
printf("\t学号\t成绩\n");
for(i = 0; i < 5; i++)
{
printf("\t%4d\t%4.1lf\n", num[i], score[i]);
}
return 0;
}