为什么STL排序会更改变量值?

时间:2019-07-08 20:29:26

标签: c++

使用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

0 个答案:

没有答案