-
描述
-
输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。
输入
-
第一行输入一个正整数N(N <= 100),表示学生人数。接着输入N行,每行格式如下:
分数 姓名
分数是一个非负整数,且小于等于100;
姓名为一个连续的字符串,中间没有空格,长度不超过20。
数据保证最高分只有一位同学。
输出
- 获得最高分数同学的姓名。 样例输入
-
5 87 lilei 99 hanmeimei 97 lily 96 lucy 77 jim
样例输出
-
hanmeimei
第一次程序;
#include<cstdio>
int b,c,x,f=1,d;
char a[21],y[21];
int main()
{
scanf("%d",&b);
for(int i=1;i<=b;i++)
{
scanf("%d",&c);
if(x<=c) 错误处
{
f=0;
d=1;
x=c;
scanf(" %c",&y[d]);
while(y[d]!='\n')
{
f++;
d++;
scanf("%c",&y[d]);
}
}
}
for(int i=1;i<=f;i++)
printf("%c",y[i]);
}
错在---如果x>c,则不进入输入名字的循环
第二次程序;
#include<cstdio>
int b,c,x,f=1,d;
char a[21],y[21];
int main()
{
scanf("%d",&b);
for(int i=1;i<=b;i++)
{
scanf("%d",&c);
if(x>c) 修改处
{
scanf(" %c",&a[d]);
while(a[d]!='\n')
{
d++;
scanf("%c",&a[d]);
}
}
if(x<=c)
{
f=0;
d=1;
x=c;
scanf(" %c",&y[d]);
while(y[d]!='\n')
{
f++;
d++;
scanf("%c",&y[d]);
}
}
}
for(int i=1;i<=f;i++)
printf("%c",y[i]);
}
这就改正了第一次的问题。