首页 > 代码库 > 01:谁考了第k名

01:谁考了第k名

01:谁考了第k名

  • 查看
  • 提交
  • 统计
  • 提问
总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。

输入
第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。
其后有n行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。
输出
输出第k名学生的学号和成绩,中间用空格分隔。(注:请用%g输出成绩)
样例输入
5 3
90788001 67.8
90788002 90.3
90788003 61
90788004 68.4
90788005 73.9
样例输出
90788004 68.4
  • 查看
  •  
  • 提交
  •  
  • 统计
  •  
  • 提问
    #include<iostream>
    #include<cstdio>
    
    using namespace std;
    double a[101][2];
    int main()
    {
    	//freopen("asd.in","r",stdin);
    	//freopen("asd.out","w",stdout);
    	int n,k;
    	double c;
    	scanf("%d%d",&n,&k);
    	for(int i=1;i<=n;i++)
    	 {
    	 	scanf("%lf%lf",&a[i][1],&a[i][2]);
    	 }
    	for(int i=1;i<n;i++)
    	 {
    	 	for(int j=n;j>i;j--)
    	 	 {
    	 	 	if(a[j][2]>a[j-1][2])
    	 	 	 {
    	 	 	 	c=a[j][2];
    	 	 	 	a[j][2]=a[j-1][2];
    	 	 	 	a[j-1][2]=c;
    	 	 	 	c=a[j][1];
    	 	 	    a[j][1]=a[j-1][1];
    	 	 	 	a[j-1][1]=c;
    			   }
    		  }
    	  }
    	  printf("%ld",(long long)a[k][1]);
          printf(" %g",a[k][2]);
    	//fclose(stdin);
    	//fclose(stdout);	
    }

01:谁考了第k名