关于C语言的疑惑,请大虾指教(紧急)

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:19:31
我最近在学习C语言,遇到了一个我自己无法解决的问题,想请高手赐教一下,我是这样编写程序的
#include <stdio.h>
int main(void)
{
int i = 100;
printf("%f\n",(float)i);
printf("%f\n",i);
printf("%d\n",i);
printf("%i\n",100.0);

return 0;
}
为什么我在linux上面运行会出现这样的结果呢?
100.000000
100.000000
100
0
请各位高手不吝赐教.在此谢谢各位了
再补充一下呀,
加一条printf("%i\n",1.0);
打印的结果怎么不是1.0???

%i 是作为十进制整数输出,1.0是个浮点数,当然不会这样输出啦!

printf("%f\n",(float)i); 以浮点数格式输出强制类型转换后的i值。

printf("%f\n",i); //以浮点数格式输出i值。

printf("%d\n",i); //以十进制整数格式输出i值。

printf("%i\n",100.0); //不会自动由浮点数变为整数,转换失败,所以输出错误值

%i和%d的区别是:i会自动将八进制、十六进制的整数转换为十进制,而%d不转换。