習題9 5 通訊錄排序 20分

2021-10-05 21:45:26 字數 1311 閱讀 2935

輸入n個朋友的資訊,包括姓名、生日、**號碼,本題要求編寫程式,按照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。

輸入格式:

輸入第一行給出正整數n(<10)。隨後n行,每行按照「姓名 生日 **號碼」的格式給出一位朋友的資訊,其中「姓名」是長度不超過10的英文本母組成的字串,「生日」是yyyymmdd格式的日期,「**號碼」是不超過17位的數字及+、-組成的字串。

輸出格式:

按照年齡從大到小輸出朋友的資訊,格式同輸出。

輸入樣例:

3zhang 19850403 13912345678

wang 19821020 +86-0571-88018448

qian 19840619 13609876543

輸出樣例:

wang 19821020 +86-0571-88018448

qian 19840619 13609876543

zhang 19850403 13912345678

解題思路:

在建立的結構體內,將姓名,**,生日都以char 陣列的形式儲存,要求以年齡從大到小輸出通訊錄,理解為按生日字典序從小到大輸出通訊錄。

在輸入通訊錄後,額外建立兩個int陣列b,c來實現排序記錄。在個人部落格中,有一題習題8-7 字串排序 採用同樣的方法實現,有興趣可以看一下。

**如下:

#include

#include

struct phonep[20]

;int

main()

,c[10];

scanf

("%d"

,&n)

;for

(i=0

;i)for

(i=0

;iflag=0;

for(j=

0;j) c[i]

=temp;

b[temp]=1

;}for(i=

0;i)return0;

}

ps:在網上查了下,發現還可以直接設定臨時結構變數,對變數陣列進行氣泡排序等方法進行排序,氣泡排序例項**如下:

#include

#include

#include

struct phonep[20]

;int

main()

for(i=

0;i1;i++)}

}for

(i=0

;i)return0;

}

習題9 5 通訊錄排序 20分

進博主技術群,與大佬交流,領取乾貨學習資料 快速找到所需題目 浙大版c語言程式設計第三版題目集一覽表 輸入n個朋友的資訊,包括姓名 生日 號碼,本題要求編寫程式,按照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。輸入格式 輸入第一行給出正整數n 10 隨後n行,每行按照 姓名 生日...

習題9 5 通訊錄排序 20分

輸入n個朋友的資訊,包括姓名 生日 號碼,本題要求編寫程式,按照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。輸入第一行給出正整數n 10 隨後n行,每行按照 姓名 生日 號碼 的格式給出一位朋友的資訊,其中 姓名 是長度不超過10的英文本母組成的字串,生日 是yyyymmdd格式...

習題9 5 通訊錄排序 20分

輸入第一行給出正整數n 10 隨後n行,每行按照 姓名 生日 號碼 的格式給出一位朋友的資訊,其中 姓名 是長度不超過10的英文本母組成的字串,生日 是yyyymmdd格式的日期,號碼 是不超過17位的數字及 組成的字串。按照年齡從大到小輸出朋友的資訊,格式同輸出。3 zhang 19850403 ...