#include
struct data
{
int year;
int month;
int day;
};
struct student
{
int num;
char name[20];
int age;
char sex;
struct data ;
float score;
}stu[5]={{101,"liping",18,'m',{1992,5,23},75},{102,"zhangping",19,'m',{1993,5,23},62.5},
{103,"hefang",20,'f',{1994,5,23},92.5},{104,"chengjiang",17,'f',{1995,5,23},87},
{105,"wangming",45,'m',{1996,5,23},58}};
void main()
{
int i;
for(i=0;i<5;i++)
{
printf("birthday=%d\n",stu[i].data);
}
system("pause");
}
上面的运行结果为什么只有年?而没有后面的月和日?
printf("birthday=%d-%d-%d\n",stu[i].data.year,stu[i].data.month,stu[i].data.day);
把printf语句改成上述的试试
%d只是输出了一个整形,就是date结构体的第一个整型变量,楼上正解
struct data 是类型啊,你需要在student内定义struct data类的变量,然后按一楼的改法,并把所有的data换成你的变量名
例如变量名为dd,修改如下printf("birthday=%d-%d-%d\n", stu[i].dd.year, stu[i].dd.month, stu[i].dd.day);