全部问题 > 当前问题

结果后面两个数字为什么是85,90,为什么不会是85.0,90.0呢?从哪一步看出被int化了?

焦岚 2020-4-11 22:16:18

共 1 个回答

【C语言】桦桦 2020-8-12 16:08:59

%2.0f表示就是输出一个float量,以至少2位的宽度输出其整数部分(小数部分四舍五入),不足2位时,前面补空格;超出2位整数时,按实际宽度输出。

问题来自: 结构体和共用体
有以下程序
#include <stdio.h>
main()
{ struct STU{ char name[9]; char sex; double score[2]; };
  struct STU a={"Zhao",'m',85.0,90.0}, b={"Qian",'f',95.0,92.0};
  b=a;
  printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是 ______ 。
A. Qian,f,95,92
B. Qian,m,85,90
C. Zhao,f,95,92
D. Zhao,m,85,90
答案:D
解析:b=a后,b中的所有成员都和a相同。因此选D。