病人排隊 (程式設計與演算法(一))

2021-09-10 17:45:58 字數 959 閱讀 7162

描述

病人登記看病,編寫乙個程式,將登記的病人按照以下原則排出看病的先後順序: 

1. 老年人(年齡 >= 60歲)比非老年人優先看病。 

2. 老年人按年齡從大到小的順序看病,年齡相同的按登記的先後順序排序。 

3. 非老年人按登記的先後順序看病。

輸入第1行,輸入乙個小於100的正整數,表示病人的個數;

後面按照病人登記的先後順序,每行輸入乙個病人的資訊,包括:乙個長度小於10的字串表示病人的id(每個病人的id各不相同且只含數字和字母),乙個整數表示病人的年齡,中間用單個空格隔開。

輸出按排好的看病順序輸出病人的id,每行乙個。

樣例輸入

5

021075 40

004003 15

010158 67

021033 75

102012 30

樣例輸出

021033

010158

021075

004003

102012

#include#includeusing namespace std;

struct patient

a[100],temp;

bool judge(patient p1, patient p2)

//其實用正常的結構體和if elseif也能解決這個問題,但一定要用穩定的排序演算法

int main()

for (int i = n-1; i >= 0; --i)

//注意不要用選擇排序,不穩定,值相同元素的相對位置會被打亂

}} for (int i = 0; i != n; ++i)

cout << a[i].id << endl;

system("pause");

}

C C 程式設計學習 第19周 病人排隊

題目鏈結 病人登記看病,編寫乙個程式,將登記的病人按照以下原則排出看病的先後順序 1.老年人 年齡 60 歲 比非老年人優先看病。2.老年人按年齡從大到小的順序看病,年齡相同的按登記的先後順序排序。3.非老年人按登記的先後順序看病。輸入格式 第 1 行,輸入乙個小於 100 的正整數,表示病人的個數...

資訊奧賽一本通 1183病人排隊

1183 病人排隊 題目描述 病人登記看病,編寫乙個程式,將登記的病人按照以下原則排出看病的先後順序 1.老年人 年齡 60歲 比非老年人優先看病。2.老年人按年齡從大到小的順序看病,年齡相同的按登記的先後順序排序。3.非老年人按登記的先後順序看病。輸入 第1行,輸入乙個小於100的正整數,表示病人...

資訊學奧賽一本通C 語言 1183 病人排隊

題目描述 病人登記看病,編寫乙個程式,將登記的病人按照以下原則排出看病的先後順序 1.老年人 年齡 60歲 比非老年人優先看病。2.老年人按年齡從大到小的順序看病,年齡相同的按登記的先後順序排序。3.非老年人按登記的先後順序看病。輸入 第1行,輸入乙個小於100的正整數,表示病人的個數 後面按照病人...