1 条题解
-
0
C :
#include <stdio.h> #include <stdlib.h> #include <string.h> struct worker { int num; char name[11]; int age; }; int cmp(const void *pa,const void *pb) { struct worker* a=(struct worker*)pa; struct worker* b=(struct worker*)pb; if(a->age!=b->age) return a->age-b->age; if(a->num!=b->num) return a->num-b->num; return strcmp(a->name,b->name); } int main () { struct worker w[30]; int n; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) scanf("%d%s%d",&w[i].num,w[i].name,&w[i].age); qsort(w,n,sizeof(struct worker),cmp); n=(n>3?3:n); for(int i=0;i<n;i++) printf("%d %s %d\n",w[i].num,w[i].name,w[i].age); } }
C++ :
#include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; struct staff{ int id; string name; int age; }; bool comp(staff a,staff b){ if(a.age!=b.age){ return a.age<b.age; } else if(a.id!=b.id){ return a.id<b.id; } else{ return a.name<b.name; } } int main(int argc,char* argv[]){ //freopen("input.txt","r",stdin); vector<staff> v; staff *p; int n; while(cin>>n){ v.resize(0); while(n--){ p = new staff; cin>>p->id>>p->name>>p->age; v.push_back(*p); } sort(v.begin(),v.end(),comp); for(int i=0;i<3&&i<v.size();i++){ cout<<v[i].id<<" "<<v[i].name<<" "<<v[i].age<<endl; } } return 0; }
Java :
import java.util.PriorityQueue; import java.util.Queue; import java.util.Scanner; public class Main{ static class Person implements Comparable<Person> { String id; String name; int age; Person(String id, String name, int age) { this.id = id; this.name = name; this.age = age; } String getId() { return id; } String getName() { return name; } int getAge() { return age; } @Override public int compareTo(Person o) { if (age > o.age) return 1; if (age == o.age && Integer.valueOf(id) > Integer.valueOf(o.id)) return 1; if (age == o.age && Integer.valueOf(id) > Integer.valueOf(o.id) && name.compareTo(o.name) == 1) return 1; return -1; } } public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { int n = in.nextInt(); Queue<Person> queue = new PriorityQueue<Person>(); for (int i = 0; i < n; i++) { queue.add(new Person(in.next(), in.next(), in.nextInt())); } for (int i = 0; i < Math.min(n, 3); i++) { Person person = queue.poll(); System.out.println(person.getId() + " " + person.getName() + " " + person.getAge()); } } } }
- 1
信息
- ID
- 1384
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者