文章
11
粉丝
410
获赞
9
访问
109.0k
举个例子,若满足a则。 AA。。。
在满足a 的条件下,有满足b,则。BB。。。。
所以,排序的条件得现已 a 为大入口,然后立即判断是否满足b ,接着处理 BB。否 AA
只有这样才能避免逻辑遗漏。
#include<bits/stdc++.h>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
typedef struct DD{
string a;
int b;
int c;
}DD;
bool cmp(DD x,DD y)
{
if(x.c==y.c) {
if(x.a==y.a) return x.b<y.b;
else
return x.a<y.a;}
else
return x.c<y.c;
}
int main(){
int n,i=0;
cin>>n;
DD a[n];
while(n--)
{
cin>>a[i].a;
cin>>a[i].b;
cin>>a[i++].c;
}
sort(a,a+i,cmp);
for(int j=0;j<i;j++)
cout<<a[j].a<<" "<<a[j].b<<" "<<a[j].c<<endl;
return 0;
}
登录后发布评论
想知道第7行如果string改成char的话,测试就会出错bed会在bcd前边儿这是为啥