lqhenwunai 发表于 2022-9-19 09:38:12

关于结构体输出的问题

本帖最后由 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:46:08

本帖最后由 dolly_yos2 于 2022-9-19 09:48 编辑

请问 test.val 和 test.sum 是什么类型?这个类型在输出的时候应该使用什么格式化占位符?
另外输出的额外参数中表达式 (test.val, test.sum) 是要表达什么?是不是和其他语言的字符串格式化混淆了?

jackz007 发表于 2022-9-19 10:51:22

本帖最后由 jackz007 于 2022-9-19 10:53 编辑

      为什么说这个代码有错,你所预期的结果又是什么?
      你贴出的 238552175004813424067559362205658162360387126431826063654912.000000 和这个代码有任何关系吗?

lqhenwunai 发表于 2022-9-19 10:55:33

jackz007 发表于 2022-9-19 10:51
为什么说这个代码有错,你所预期的结果又是什么?
      你贴出的 238552175004813424067559362 ...

显然输出结果应该是1.0和2.0, 但却输出了奇怪的东西

jackz007 发表于 2022-9-19 11:03:00

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);
      不就好了?

lqhenwunai 发表于 2022-9-19 11:11:15

jackz007 发表于 2022-9-19 11:03
这一句

      改成


哦,谢谢
页: [1]
查看完整版本: 关于结构体输出的问题