c++,noi成绩排序那题试了好多次都是wrong answer,但是自己实在找不出问题,有人来帮忙看看代码哪出错了吗?
#include
#include
using namespace std;
struct node{
char a[20];
int b;
};
bool cmp(node x,node y)
{
if(x.b==y.b)
{
if(strcmp(x.a,y.a)<0)
{
return x.a>y.a;
}
else if(strcmp(x.a,y.a)>0)
{
return y.a>x.a;
}
else
{
return x.a>y.a;
}
}
return x.b>y.b;
}
int main()
{
int a,i,j;
cin>>a;
node b[a];
for(i=0;i>b[i].a>>b[i].b;
}
sort(b,b+a,cmp);
for(i=0;i" "<
抱歉,我对sort函数不太理解,所以弄不懂怎么在cmp函数里比较字典序并进行排序,请问一下该怎么弄呢
if(strcmp(x.a,y.a)<0)
{
return x.a>y.a;
}
这算啥写法?明知道字符串比较用strcmp,可为啥return x.a>y.a呢?
bool cmp(node x,node y)
{
if(x.b==y.b)
{
if(strcmp(x.a,y.a)<0)
{
return false;
}
else if(strcmp(x.a,y.a)>0)
{
return true;
}
else
{
return false;
}
}
return x.b>y.b;