新手天翼
呜呜呜……零分代码:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct ZR{
string name;
int id;
}zr[1001];
bool f(ZR a,ZR b){
if(a.name!=b.name) return a.name<b.name;
return a.id>b.id;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
getline(cin,zr[i].name);
cin>>zr[i].id;
}
sort(zr+1,zr+1+n,f);
for(int i=1;i<=n;i++)
cout<<zr[i].name<<" "<<zr[i].id<<endl;
return 0;
}
输出总是0
0
0
0
大佬快来帮帮我!!!
新手光能
我来帮你了,你的姓和名要分开来输入和比较,你cmp中就没有分别比较姓,名,输入最好也要输入两个,求采纳,谢谢了
struct kk{
string x,m;//x代表姓,m代表名
int hao;//hao代表学号
}a[105];
bool cmp(kk a,kk b){
如果(a.x!=b.x )
return a.x<b.x;
如果(a.m!=b.m )
return a.m<b.m;
return a.hao>b.hao;
}
int main(){
int n;
输入>>n;
for(int i=1;i<=n;i++){
输入>>a[i].x>>a[i].m>>a[i].hao;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
输出<<a[i].x<<" "<<a[i].m<<" "<<a[i].hao<<endl;
}
return 0;
}