需要注意的是:结构体变量调用成员 使用 . 而结构体指针使用 -> 不然编译器会报错!!!
#includetypedef struct{ int year; int month; int day; }Data; typedef struct{ char name[20]; int age; Data first; Data second; }People; void getpeople(People *people){ printf("请问姓名是:"); scanf("%s",people->name); printf("请问年龄:"); scanf("%d",&people->age); printf("请问是否接种过疫苗:"); getchar(); if(getchar()=='Y'){ printf("请输入第一针疫苗的接种日期:"); scanf("%d-%d-%d",&people->first.year,&people->first.month,&people->first.day); printf("请问是否接种过第二针疫苗:"); getchar(); if(getchar()=='Y'){ printf("请输入第二针疫苗接种的日期:"); scanf("%d-%d-%d",&people->second.year,&people->second.month,&people->second.day); } else{ printf("请尽快接种第二针疫苗!n"); people->second.year=0; } } else{ printf("请尽快接种疫苗!n"); people->first.year=0; } putchar('n'); } void prinf(People people){ printf("姓名:%s,年龄:%dn",people.name,people.age); if(people.first.year==0){ printf("未接种疫苗!n"); } else{ printf("第一针疫苗接种日期:%d-%d-%d,",people.first.year,people.first.month,people.first.day); if(people.second.year==0){ printf("未接种第二针疫苗!n"); } else{ printf("第二针疫苗接种日期:%d-%d-%dn",people.second.year,people.second.month,people.second.day); } } putchar('n'); } int main(void){ People people[3]; int i; for(i=0;i<3;i++){ getpeople(&people[i]); } for(i=0;i<3;i++){ prinf(people[i]); } return 0; }



