【发布时间】:2021-05-28 02:46:18
【问题描述】:
int main( )
{
int x = 5;
float y = 3.1f;
printf("int x=%d ,float x=%f ,y=%f, y=%d\n", x, x, y, y); //X86
return 0;
}
我认为答案是 5 、 5.0 、 3.1 、 3。 但答案是 enter image description here
为什么?
【问题讨论】:
-
请在您的问题中以文本形式包含输出,格式化为代码,而不是作为指向另一个站点上的图像的链接。而你忘记了所需的
#include <stdio.h>。 -
要获得所需的输出,您需要强制转换为相应格式说明符所期望的类型:
printf("int x=%d, float x=%f, y=%f, y=%d\n", x, (double)x, y, (int)y);注意第四个参数 (y) 将float提升为double是自动的。