我們預備用下的結構 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #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; } /* 《程式語言教學誌》的範例程式 檔名:friendtest.c 功能:測試結構 friendData 作者:張凱慶 時間:西元2010年7月 */ |
編譯後執行,如下

問題與討論
- 利用整數記錄性別跟關係好不好?試討論其優劣。
- 為什麼不把結構 friendData 直接放入之前發展的程式當中,個別測試有什麼優點或缺點?
沒有留言:
張貼留言