#include <stdio.h>
// 構造体の宣言
struct kazoku{
char name[20];
int age;
};
struct meibo{
char name[20];
int age;
char tel[15];
char address[40];
struct kazoku family[3];
};
// 名簿を1件分表示する関数のプロトタイプ宣言
void disp(struct meibo data);
//
// メイン関数
void main(){
struct meibo classmate[] = {
{ "abe natsuni" , 19, "012-3456-7890", "hokkaido uncharakanchara 1-2-3", {"taro", 20} },
{ "gotoh mai" , 19, "0987-654-3210", "tokyo nancharakanchara 9-8-7" , {{"ichoro", 22}, {"jiro", 23}} },
{ "nakazava yuko", 19, "090-1234-5678", "kanagawa hogehoge 1234-5678" },
};
int i, size = sizeof(classmate) / sizeof(struct meibo);
// 表示する
for ( i = 0 ; i < size ; i++ )
disp(classmate[i]);
}
//
// 名簿を1件分表示する関数
void disp(struct meibo data){
struct kazoku* p;
// 空データなら表示しない
if ( data.name[0] == '\0' )
return;
printf("name : %s\n", data.name);
printf("age : %d\n", data.age);
printf("tel : %s\n", data.tel);
printf("address : %s\n", data.address);
// 家族を表示する
for ( p = data.family ; p->name[0] != '\0' ; p++ )
printf("family : name : %s, age : %d\n", p->name, p->age );
printf("\n");
}
|