水题,理解好题意,多注意细节就行。直接贴代码
#include<stdio.h>
#include<string.h>
struct node {
int n;
char time[20];
int score;
int current; //在当前题目数的排位
} stu[100];
int score[6][2]={50,50,60,65,70,75,80,85,90,95,100,100};
int main() {
int n;
while(scanf("%d",&n) && n != -1) {
int count[6] ={0};
for(int i = 0;i < n;i++) {
scanf("%d %s",&stu[i].n,stu[i].time);
stu[i].current = 1;
count[stu[i].n]++;
}
for(int i = 0;i < n;i++) {
for(int j = 0;j < n;j++) {
if(stu[i].n == stu[j].n && strcmp(stu[j].time,stu[i].time) < 0) {
stu[i].current ++;
}
}
}
for(int i = 1;i < 6;i++) {
if(count[i]%2) count[i]--;
count[i]/=2;
}
for(int i = 0;i < n;i++) {
if(stu[i].current > count[stu[i].n])
stu[i].score = score[stu[i].n][0];
else
stu[i].score = score[stu[i].n][1];
}
for(int i = 0; i < n; i++) {
printf("%d\n",stu[i].score);
}
printf("\n");
}
}
转载于:https://blog.51cto.com/992199027/1536978