#include <stdio.h>
#define DATA unsigned short int
#define N 11
typedef struct
{
DATA studentNumber;
DATA scoreMaths;
DATA scoreEnglish;
DATA scoreComputer;
DATA sum;
} info;
info getInfo(void)
{
info temp;
printf("Student No.: ");
scanf("%hu", &temp.studentNumber);
printf("Score(Maths): ");
scanf("%hu", &temp.scoreMaths);
printf("Score(English): ");
scanf("%hu", &temp.scoreEnglish);
printf("Score(Computer): ");
scanf("%hu", &temp.scoreComputer);
return temp;
}
void sort(info value[])
{
int i, j;
info temp;
for (i = 1; i < N - 1; i++)
for (j = 2; j < N; j++)
if (value[i].sum < value[j].sum) {
value[i].sum ^= value[j].sum;
value[j].sum ^= value[i].sum;
value[i].sum ^= value[j].sum;
}
}
int main(void)
{
info infos[N];
void sort(info value[]);
int i = 1;
for ( ; i < N; i++) {
printf("Get the #%i student info...\n", i);
infos[i] = getInfo();
infos[i].sum = infos[i].scoreMaths + \
infos[i].scoreEnglish + infos[i].scoreComputer;
}
sort(infos);
printf("-------------------------------------------------------------------\n");
printf("StudentsNumber\tMaths\tEnglish\tComputer\tSum\tAverage\tRank\n");
for ( i = 1; i < N; i++)
printf("%.3hu\t\t%hu\t%hu\t%hu\t\t%hu\t%.2f\t%i\n",
infos[i].studentNumber, infos[i].scoreMaths, infos[i].scoreEnglish, \
infos[i].scoreComputer, infos[i].sum, (float)infos[i].sum/3, i);
printf("-------------------------------------------------------------------\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考