Skip to content

1028. List Sorting (25)cmp函数问题 #7

@likmin

Description

@likmin

题目要求C=1,按学号递增排名,如果C=2,按姓名的非递增排名,如果C=3按成绩的非递归排名。
如果几个同学的姓名和成绩相同,必须按学号递增排名。
按照这个思路,cmp函数应该这样写
`
bool cmp(node a, node b) {
if (C == 1)return a.ID < b.ID;
else if (C == 2) {
if(strcmp(a.name, b.name))
return strcmp(a.name, b.name) < 0;
else return a.ID < b.ID;
}
else if (C == 3) {
if(a.Grade != b.Grade)
return a.Grade < b.Grade;
else return a.ID < b.ID;
}

}
而柳婼学姐这样写,
int cmp1(NODE a, NODE b) {
if(c == 1)
return a.no < b.no;
else if(c == 2)
return strcmp(a.name, b.name) <= 0;
else
return a.score <= b.score;
}
`
为什么呢??如果姓名一样返回真,没有按学号排序啊??

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions