gpt4 book ai didi

c++ - 在结构体中打印数组

转载 作者:行者123 更新时间:2023-11-30 21:42:34 24 4
gpt4 key购买 nike

我的程序中有一个结构

struct data
{
double a;
double b;
}x[ ]={0.1 , 0.1,
0.2 , 0.1,
0.3 , 0.1,
0.4 ,0.2,
0.5 , 0.3,
0.6 , 0.4,
0.1 , 0.4,
0.7 , 0.4,
0.8 , 0.8,
0.6 , 0.6,
0.6 , 0.6,
0.6 , 0.6};

如图所示,该数组有 12 个成员。经过一番计算后,我想一一显示成员。我怎样才能实现它。

现在我就是这样做的。

for (i=0;i<12;i++)
{
printf("\t index %x value %x \n\r",i, x[i]);
}

但我得到了奇怪的结果。我该如何解决这个问题。

最佳答案

首先,x[i] 是一个struct data 类型的变量,并且没有格式说明符可以直接打印该变量。您需要引用确切的成员变量(x[i].ax[i].b)并单独打印它们。

也就是说,正如您所显示的代码一样,%x 需要一个 unsigned int 类型的参数,并且您不能传递 double那里有变量。这是undefined behavior .

引用 C11,第 §7.21.6.1/p8 章

o,u,x,X
The unsigned int argument is converted to unsigned octal (o), unsigned decimal (u), or unsigned hexadecimal notation (x or X) in the style dddd; [...]

一般情况下,使用 %f 打印 double 值。

关于c++ - 在结构体中打印数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38452543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com