为什么我这个通过不了
2025-01-01 12:03:20
发布于:黑龙江
#include<iostream>
using namespace std;
typedef struct person{
char name[50];
int a;
int b;
}student;
void swap(student* a,student *b){
student temp=*a;
*a=*b;
*b=temp;
}
int main(){
int n;
scanf("%d",&n);
student s[n];
for(int i=0;i<n;i++){
cin>>s[i].name >>s[i].a >>s[i].b;
}
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1-i;j++){
if(s[j].a<s[j+1].a){
swap(&s[j],&s[j+1]);
}
if(s[j].a==s[j+1].a){
if(s[j].b<s[j].b){
swap(&s[j],&s[j+1]);
}
}
}
}
for(int i=0;i<n;i++){
cout<<s[i].name<<endl;
}
return 0;
}
全部评论 2
你结构体写的不对
1周前 来自 浙江
0#include <bits/stdc++.h>
using namespace std;
struct note{
string s;
int a,b;
}a[200005];
bool cmp(note a,note b){
if(a.a!=b.a){
return a.a>b.a;
}else if(a.b!=b.b){
return a.b<b.b;
}else{
return a.s>b.s;
}
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].s>>a[i].a>>a[i].b;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].s<<endl;
}
return 0;
}1周前 来自 浙江
0















有帮助,赞一个