noi成绩排序(c++)

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;