关于结构体输出的问题
本帖最后由 lqhenwunai 于 2022-9-19 09:51 编辑请教各位大神,我输出以下定义的结构体中的值,得到的结果是2.000000 238552175004813424067559362205658162360387126431826063654912.000000。
请问是哪里出错了呢?
#include <stdio.h>
typedef struct{
double val,sum;
} Prop;
int main()
{
Prop test;
test.val=1.0;
test.sum=2.0;
printf("%f %f \n", (test.val,test.sum));
return 0;
}
~ 本帖最后由 dolly_yos2 于 2022-9-19 09:48 编辑
请问 test.val 和 test.sum 是什么类型?这个类型在输出的时候应该使用什么格式化占位符?
另外输出的额外参数中表达式 (test.val, test.sum) 是要表达什么?是不是和其他语言的字符串格式化混淆了? 本帖最后由 jackz007 于 2022-9-19 10:53 编辑
为什么说这个代码有错,你所预期的结果又是什么?
你贴出的 238552175004813424067559362205658162360387126431826063654912.000000 和这个代码有任何关系吗? jackz007 发表于 2022-9-19 10:51
为什么说这个代码有错,你所预期的结果又是什么?
你贴出的 238552175004813424067559362 ...
显然输出结果应该是1.0和2.0, 但却输出了奇怪的东西 lqhenwunai 发表于 2022-9-19 10:55
显然输出结果应该是1.0和2.0, 但却输出了奇怪的东西
这一句
printf("%f %f \n", (test.val,test.sum));
改成
printf("%f %f \n", test.val,test.sum);
不就好了? jackz007 发表于 2022-9-19 11:03
这一句
改成
哦,谢谢
页:
[1]