#include <stdio.h> struct staff { int num; char name[15]; char sex; struct date {int year; int month; int day; }birthday; float salary; char address[30]; }person1={00003,"WuHong","M",{1998,8,20},2480,"清城名苑5-3-801"}; int main() { printf("编号:%d\n姓名:%s\n性别:%c\n出生日期:%d%d%d\n工资:%f\n地址:%s", person1.num,person1.name,person1.sex,person1.birthday.year,person1.birthday.month,person1.birthday.day, person1.salary,person1.address); }有什么错
时间: 2023-12-03 15:44:43 浏览: 251
代码中有一个问题,即结构体内的嵌套结构体 `date` 应该在结构体 `staff` 外面定义。这是因为 `struct date` 是 `struct staff` 中的一个成员,而不是一个独立的结构体。
以下是修改后的代码:
```
#include <stdio.h>
struct date {
int year;
int month;
int day;
};
struct staff {
int num;
char name[15];
char sex;
struct date birthday;
float salary;
char address[30];
} person1 = {00003, "WuHong", "M", {1998, 8, 20}, 2480, "清城名苑5-3-801"};
int main() {
printf("编号:%d\n姓名:%s\n性别:%c\n出生日期:%d%d%d\n工资:%f\n地址:%s",
person1.num, person1.name, person1.sex,
person1.birthday.year, person1.birthday.month, person1.birthday.day,
person1.salary, person1.address);
return 0;
}
```
除此之外,代码还需要添加 `return 0;` 语句以表示程序正常结束。
阅读全文