通訊錄的錄入與顯示

2021-10-07 10:24:17 字數 2133 閱讀 6687

通訊錄中的一條記錄包含下述基本資訊:朋友的姓名、出生日期、性別、固定**號碼、移動**號碼。 本題要求編寫程式,錄入n條記錄,並且根據要求顯示任意某條記錄。

輸入格式:

輸入在第一行給出正整數n(≤10);隨後n行,每行按照格式姓名 生日 性別 固話 手機給出一條記錄。其中姓名是不超過10個字元、不包含空格的非空字串;生日按yyyy/mm/dd的格式給出年月日;性別用m表示「男」、f表示「女」;固話和手機均為不超過15位的連續數字,前面有可能出現+。

在通訊錄記錄輸入完成後,最後一行給出正整數k,並且隨後給出k個整數,表示要查詢的記錄編號(從0到n−1順序編號)。數字間以空格分隔。

輸出格式:

對每一條要查詢的記錄編號,在一行中按照姓名 固話 手機 性別 生日的格式輸出該記錄。若要查詢的記錄不存在,則輸出not found。

輸入樣例:

3

chris 1984/03

/10 f +

86181779452

13707010007

laolao 1967/11

/30 f 057187951100

+8618618623333

qiaolin 1980/01

/01 m 84172333

1008621

7

輸出樣例:
laolao 057187951100

+8618618623333 f 1967/11

/30not found

——————————————————————————————————————

題目分析:

第一行給出正整數n------>輸入資訊是根據輸入數字n決定,為動態分配;並且乙個人資訊有多種資料型別,考慮鍊錶;

資料輸入;

資料查詢;

資料輸出;

#include

#include

#define maxlen 16

typedef

struct addressbook

addressbook;

/* 結構體node建立查詢數字鍊錶 */

typedef

struct num

node;

addressbook *

initlist

(int n)

;void

datashow

(addressbook *head,

int n)

;node *

initnumlist

(int m)

;int

finddata

(node *p,

int index)

;int

main()

else

}return0;

}/* 利用鍊錶儲存資料 */

目前上述**只能通過測試點1。參考網上的**,基本上都用到了可變陣列(根據輸入變數確定陣列長度),以後再分析是不是可變陣列與鍊錶之間的不同導致的測試點2、3錯誤。

7 1 通訊錄的錄入與顯示

7 1 通訊錄的錄入與顯示 10 分 通訊錄中的一條記錄包含下述基本資訊 朋友的姓名 出生日期 性別 固定 號碼 移動 號碼。本題要求編寫程式,錄入n條記錄,並且根據要求顯示任意某條記錄。輸入格式 輸入在第一行給出正整數n 10 隨後n行,每行按照格式姓名 生日 性別 固話 手機給出一條記錄。其中姓...

5 34 通訊錄的錄入與顯示

通訊錄中的一條記錄包含下述基本資訊 朋友的姓名 出生日期 性別 固定 號碼 移動 號碼。本題要求編寫程式,錄入 n 條記錄,並且根據要求顯示任意某條記錄。輸入格式 輸入在第一行給出正整數 n 10 隨後 n 行,每行按照格式姓名 生日 性別 固話 手機給出一條記錄。其中姓名是不超過 10 個字元 不...

11 1 通訊錄的錄入與顯示 10

通訊錄中的一條記錄包含下述基本資訊 朋友的姓名 出生日期 性別 固定 號碼 移動 號碼。本題要求編寫程式,錄入n條記錄,並且根據要求顯示任意某條記錄。輸入格式 輸入在第1行給出正整數n 10 隨後n行,每行按照格式 姓名 生日 性別 固話 手機 給出一條記錄。其中 姓名 是不超過10個字元 不包含空...