Description
刚举行的万米长跑活动中,有N个人跑完了全程,所用的时间都不相同。颁奖时为了增加趣味性,随机抽了一个数K,要奖励第K名一双跑鞋。
现在组委会给你N个人的姓名、成绩(用时,单位是秒),请你编程快速输出第K名的姓名。
Input
第一行:2个整数N和K。1≤K≤N≤100
下面N行:每行第1个是字符串表示姓名(长度不超过20);第2个是个整数,表示这个人跑完的使用时间(时间少于10000秒)。
Output
一行,第K名的姓名。
Sample Input 1
5 3 lisi 2306 zhangsan 3013 wangwu 3189 suantoujun 4012 zhaoliu 2601
Sample Output 1
zhangsan
Code
#include<stdio.h>
#include<string.h>
struct student
{
char name[20];//这个地方必须用20,否则不正确(?)
int time;
} temp;
int main()
{
int sum,k;
scanf("%d%d",&sum,&k);
struct student stu[sum];
for(int i=0; i<sum; i++)
{
scanf("%s%d",stu[i].name,&stu[i].time);
}
for(int i=0; i<sum-1; i++)
{
for(int j=0; j<sum-i-1; j++)
{
if(stu[j].time>stu[j+1].time)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
printf("%s",stu[k-1].name);
return 0;
}