我們預備用下的結構 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 直接放入之前發展的程式當中,個別測試有什麼優點或缺點?
沒有留言:
張貼留言