注册 登录
编程论坛 C++教室

为啥最后输出的f值为-1610612736,i=0,求指教

jakexiang 发布于 2015-05-20 11:51, 959 次点击
#include <stdio.h>
void main ()
{
    int i; float f;

    f=3.1415926;i=5;
    printf("i=%d,f=%f\n",i,f);

    i=(int)f;
    printf("i=%d\n",i);

    f=5/3;
    printf("f=%f\n",f);

    f=(float)5/3;
    printf("f=%f\n",f);printf("f=%d\n",f);printf("i=%f\n",i);
}
是不是实型转整型溢出了,但是i呢
5 回复
#2
jakexiang2015-05-20 11:53
如何避免此类情况发生?
#3
rjsp2015-05-20 11:58
如何避免此类情况发生?
------ 谈不上避免,因为这是错误的
f是float类型,你怎么可以用%d ?!
i是int类型,你怎么可以用%f ?!
#4
jakexiang2015-05-20 12:03
你的意思:是是什么类型,就按什么形式输出,可能不能讲一下理由
#5
jakexiang2015-05-20 12:06
实型转整型溢出,可整型转实型呢?
#6
wp2319572015-05-21 13:29
如果需要转换 请使用强制转换  这个占位符和强制转换貌似没啥关联
1