使用STL排序时,我的代码有问题。
#include <cstdio>
#include <algorithm>
using namespace std;
#define maxn 100001
int n,m,r,c[maxn];
bool cmp(int a, int b){
if (a>=b) return true;
else return false;
}
int main(){
freopen("example.inp","r",stdin);
freopen("example.out","w",stdout);
scanf("%d %d %d",&n,&m,&r);
for(int i=1;i<=n;i++){
scanf("%d",&c[i]);
}
printf("%d %d %d\n",n,m,r); //n=50000 m=50000 r=100
sort(c+1,c+n+1,cmp);
printf("%d %d %d\n",n,m,r); //n=50000 m=50000 r=1999
return 0;
}
使用sort(c + 1,c + n + 1,cmp)时,r变量更改为1999。我正在使用CodeBlock 17.12。 这是example.inp https://gofile.io/?c=g3KDvs