我們預備用下的結構 friendData 來記錄通訊錄資料
struct friendData { char name[NAME_SIZE]; int age; int sex; int relation; };
字元型態的陣列成員 name ,作為記錄好友姓名或暱稱,我們另外須定義指定陣列大小的整數常數 NAME_SIZE 。其他三個成員都是整數型態, age 記錄好友的年齡, sex 是性別, relation 則是關係,性別跟關係也都用整數型態來記錄,這是種方便的格式,因為我們會以
printf("好友性別 - 0.女 1.男: "); scanf("%d", &fage); printf("好友關係 - 0.家人 1.同學 2.朋友: "); scanf("%d", &frealtion);
直接提示使用者輸入數字選擇性別及關係,另外,需要印出性別及關係的資料時,我們也會以
printf("%s", someone.sex ? "男" : "女"); printf("%s", someone.relation ? "同學或朋友" : "家人");
利用條件運算式選擇輸出字串。
以下,我們用個直接在程式中設定的簡單程式,示範利用結構 friendData
#include <stdio.h> #include <string.h> #define NAME_SIZE 20 struct friendData { char name[NAME_SIZE]; int age; int sex; int relation; }; typedef struct friendData FriendData; int main(void) { FriendData someone; strcpy(someone.name, "tommy"); someone.age = 30; someone.sex = 1; someone.relation = 2; printf("\n好友資料如下\n"); printf("暱稱: %s\n", someone.name); printf("年紀: %d\n", someone.age); printf("性別: %s\n", someone.sex ? "男" : "女"); printf("關係: %s\n", someone.relation ? "同學或朋友" : "家人"); printf("\n"); return 0; } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:friendtest.c 功能:測試結構 friendData 作者:張凱慶 時間:西元2010年7月 */
編譯後執行,如下
問題與討論
- 利用整數記錄性別跟關係好不好?試討論其優劣。
- 為什麼不把結構 friendData 直接放入之前發展的程式當中,個別測試有什麼優點或缺點?
沒有留言:
張貼留言