十分简单的题目,以前写过,以为是普及组里最垃圾的题目(普及组的水平都不算),就是算分然后判断,也没什么要注意的(对我来说要注意的就是我错过的地方,这个题目是少量的一次性AC的题目。),代码如下(比以前写的好看很多!):
struct pep{
char name[21];
int grade;
};
int getgrade(int a, int b, char c, char d, int e)
{
int n = 0;
if(a > 80 && e > 0){
n += 8000;
}
if(a > 85 && b > 80){
n += 4000;
}
if(a > 90){
n += 2000;
}
if(a > 85 && d == ‘Y’){
n += 1000;
}
if(b > 80 && c == ‘Y’){
n += 850;
}
return n;
}
int main(void)
{
struct pep t, max;
int a, b, e;
char c, d;
int n, i;
int ans = 0;
max.grade = 0;
scanf("%d\n", &n);
for(i = 0; i < n; i++){
scanf("%s %d %d %c %c %d\n", t.name, &a, &b, &c, &d, &e);
t.grade = getgrade(a, b, c, d, e);
ans += t.grade;
if(t.grade > max.grade){
max = t;
}
}
printf("%s\n%d\n%d\n", max.name, max.grade, ans);
return 0;
}