通訊錄中的一條記錄包含下述基本資訊:朋友的姓名、出生日期、性別、固定**號碼、移動**號碼。 本題要求編寫程式,錄入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 10086
2 1 7
laolao 057187951100 +8618618623333 f 1967/11/30
not found
程式**:
#include#include#includestruct address//定義結構體
;int main(void)
} for (j = 0; j < 3; j++)//讀入生日
scanf("%c", &a[i].***);//讀取性別
getchar();//排除空格
for (j = 0; j < 18; j++)
}for (j = 0; j < 18; j++)
}} int m;
scanf("%d", &m);//搜尋次數
int*num;//定義指標
num = (int*)malloc(sizeof(int)*m);//動態分配記憶體
for (i = 0; i < m; i++)
for (i = 0; i < m; i++)
else
printf("%d", a[num[i]].birthday[j]);
if (j != 2)
}} if (i != m - 1)
}free(a);//釋放記憶體
free(num);//釋放記憶體
return 0;
}
本題關鍵在於資料的讀入與輸出,其他環節無難點。
需要注意的是,如果生日按整形型別讀入,若生日小於等於9,要在前面加上0.
7 34 通訊錄的錄入與顯示 10分
通訊錄中的一條記錄包含下述基本資訊 朋友的姓名 出生日期 性別 固定 號碼 移動 號碼。本題要求編寫程式,錄入n條記錄,並且根據要求顯示任意某條記錄。輸入在第一行給出正整數n 10 隨後n行,每行按照格式姓名 生日 性別 固話 手機給出一條記錄。其中姓名是不超過10個字元 不包含空格的非空字串 生日...
7 1 通訊錄的錄入與顯示
7 1 通訊錄的錄入與顯示 10 分 通訊錄中的一條記錄包含下述基本資訊 朋友的姓名 出生日期 性別 固定 號碼 移動 號碼。本題要求編寫程式,錄入n條記錄,並且根據要求顯示任意某條記錄。輸入格式 輸入在第一行給出正整數n 10 隨後n行,每行按照格式姓名 生日 性別 固話 手機給出一條記錄。其中姓...
5 34 通訊錄的錄入與顯示
通訊錄中的一條記錄包含下述基本資訊 朋友的姓名 出生日期 性別 固定 號碼 移動 號碼。本題要求編寫程式,錄入 n 條記錄,並且根據要求顯示任意某條記錄。輸入格式 輸入在第一行給出正整數 n 10 隨後 n 行,每行按照格式姓名 生日 性別 固話 手機給出一條記錄。其中姓名是不超過 10 個字元 不...