注意点:如果两个人的成绩相同,则排名并列
//pseudocode
//对单个课程排序
sort_course
for i =0 to N
temp = S[i];
while(temp.math.soccer>S[j].math.soccer)
exchange S[i] and S[j];
#include<stdio.h>
#include<string.h>
int N;
int M;
struct Student
{
//A stand for soccer,and B stand for rank
//for example A[0] = 98 and B[0] = 1
char ID[6];
int A[4];
int B[4];
int equal;
};
void initial_equal(Student *S)
{
for(int i =0;i<N;i++)
{
S[i].equal = 0;
}
}
void sort_course(int course_number,Student *S)
{
initial_equal(S);
int co = course_number;
Student temp;
int j;
for(int i =0;i<N;i++)
{
j = i;
temp = S[i];
while((temp.A[co]>=S[j-1].A[co])&&j>0)
{
if(temp.A[co] == S[j-1].A[co]) S[j-1].equal = 1;