问题描述
- 复合结构体如何调用。如下怎样输出出生的年月日?下面的程序错在哪里?
-
#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=%dn",stu[i].data); }
system("pause");
}
解决方案
printf("birthday=%d-%d-%dn",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-%dn", stu[i].dd.year, stu[i].dd.month, stu[i].dd.day);
时间: 2024-12-23 02:59:40