我这里遇到了一个问题【
数据输入进去后输出的是正确答案的前面一名】,我经过了如下尝试【
将for循环里的i和j增加或减少一位】,不能得到解决,没有报错,请问该怎么解决?
附:【问题
】【源代码
我这里遇到了一个问题【
数据输入进去后输出的是正确答案的前面一名】,我经过了如下尝试【
将for循环里的i和j增加或减少一位】,不能得到解决,没有报错,请问该怎么解决?
附:【问题
】【源代码
其实这道题可以直接sort一下
代码如下:
#include<bits/stdc++.h>
#define maxn 100039
using namespace std;
int n,k;
struct zj{
int a;
double b;
}student[maxn];
bool cmp(const zj &a,const zj &b){
return a.b>b.b;
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>student[i].a>>student[i].b;
sort(student+1,student+1+n,cmp);
cout<<student[k].a<<" ";
printf("%g",student[k].b);
return 0;
}
不会的话,可以用冒泡排序
反正以后sort会很常用的