struct-复合结构体如何调用。如下怎样输出出生的年月日?下面的程序错在哪里?

问题描述

复合结构体如何调用。如下怎样输出出生的年月日?下面的程序错在哪里?

#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

struct-复合结构体如何调用。如下怎样输出出生的年月日?下面的程序错在哪里?的相关文章

c++-Visula Basic 6.0语言调用C++ struct结构体中的字符串问题

问题描述 Visula Basic 6.0语言调用C++ struct结构体中的字符串问题 VB6调用C++ DLL结构体struct中的字符串,内存预分配的写法是什么,内存回收怎么做?VB不能用指针的谢谢 解决方案 VB不支持指针,一般你可以定义成局部变量,这样函数退出会自动回收的. 解决方案二: c++公用体union.结构体struct内存分配问题

c++-怎么在一个结构体里调用本身结构体数组

问题描述 怎么在一个结构体里调用本身结构体数组 typedef struct XML_DATA{ struct XML_DATA DATA[10]; char MENU[10][256]; ezxml_t xml; char *txt; char *strAttr; char *file; };XML_DATA m_data[10]; 这样使用为什么会报错,应该怎么修改?谢谢大家帮忙看看咯. 解决方案 定义变量要使用:struct XML_DATA m_data[10];要不就要改结构体的定义,

详解C++程序中定义struct结构体的方法_C 语言

什么是结构体?简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同. 结构体的定义 定义结构体使用struct修饰符,例如: struct

iOS - OC Struct 结构体

1.结构体的定义与调用 // 定义结构体类型 // 结构体类型名为 MyDate1 struct MyDate1 { int year; int month; int day; }; // 定义结构体类型变量 // 结构体类型变量为 d1,并赋值 struct MyDate1 d1 = {2016, 1, 6}; // 结构体类型变量值的调用 NSLog(@"d1: %d/%d/%d", d1.year, d1.month, d1.day); 2.typedef 定义结构体与调用 //

OnItemSelectedListener 监听器下调用函数 怎么输出结果为空

问题描述 OnItemSelectedListener 监听器下调用函数 怎么输出结果为空 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.test_layout, container, false); spinner=(Spinner)view.fi

opencv-请教大神labview调用dll怎么输出数组

问题描述 请教大神labview调用dll怎么输出数组 怎么让labview中数组 data输出为1,2,3,4呢

struct结构体的是什么情况?c++

问题描述 struct结构体的是什么情况?c++ struct jud { int x,y,t; jud (int xx,int yy,int tt) { x=xx;y=yy;t=tt; } }; 解决方案 结构体也可以有构造函数的,与 class 相似.只是其成员默认是 public 的,而 class 默认是 private 的. 解决方案二: 结构体能够继承,提供了构造函数 还可以初始化 解决方案三: 结构体也有构造函数,只不过他和C++类最大的区别就是他的成员默认是public的,和C语

node js-node.js调用系统命令,输出结果中文会乱码

问题描述 node.js调用系统命令,输出结果中文会乱码 node.js的超级菜鸟一只-- 想在windows用child__process.exec()函数来执行一个系统命令,然后把结果在后台输出,但是中文会乱码-- 源代码: app.post('/', function (req, res, next){ child_process.exec('dir ' + req.params.name, function (err, data) { console.log(data); res.end

ffmpeg-求助!在cmd中运行ffmped可以输出flv文件,在.net中调用却不能输出,代码如下

问题描述 求助!在cmd中运行ffmped可以输出flv文件,在.net中调用却不能输出,代码如下 public static bool changeVideoType(string fileName string playFile) { //获取视频转换工具的路径 string ffmpeg = System.Web.HttpContext.Current.Server.MapPath(""../"") + ffmpegtool; //获取需要转换的视频路径 st