病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:
- 老年人(年龄 \ge 60≥60 岁)比非老年人优先看病。
- 老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。
- 非老年人按登记的先后顺序看病。
输入格式
#include<stdio.h>
struct pat{
char id[100];
int age;
}patient[100];
struct pat old[100],young[100],tmp;
int main(){
int n;
int i=0,j=0,k=0,l=0;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s",patient[i].id);
scanf("%d",&patient[i].age);
}
for(i=0;i<n;i++){
if(patient[i].age>=60)
{old[l]=patient[i];l++;}
else
{young[k]=patient[i];k++;}
}
for(i=0;i<l;i++){
for(j=l-1;j>i;j--){
if(old[j].age>old[j-1].age){
tmp=old[j];
old[j]=old[j-1];
old[j-1]=tmp;
}
}
}
for(i=0;i<l;i++)printf("%s\n",old[i].id);
for(i=0;i<k;i++)printf("%s\n",young[i].id);
return 0;
}