为何我用C++ qsort最多只过了2个?

#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;

typedef struct {
int number;
int socer;
}rencai;
rencai A[5001];

int com( const void *a , const void *b )
{
rencai *c = (rencai *)a;
rencai *d = (rencai *)b;
if(c->socer != d->socer)
return d->socer - c->socer;
else
return c->number - d->number;
}
int main(){
int i,num,people;
cin>>num>>people;
for (i=0;i<num;i++)
scanf("%d%d",&A[i].number,&A[i].socer );

qsort(A,num,sizeof(A[0]),com);

int l=int(people*1.5);
int line=A[l-1].socer;

cout<<line<<" "<<l<<endl;
for (i=0;i<l;i++){
printf("%d %d\n",A[i].number,A[i].socer);}
return 0;
}

0 条评论

目前还没有评论...

信息

ID
1813
难度
4
分类
(无)
标签
递交数
1558
已通过
692
通过率
44%
被复制
17
上传者