DragonL915 发表于 2013-10-6 20:41:42

输出问题

#include<stdio.h>
main()
{
        float f=5.75;
        printf("(int)f=%d,f=%f\n",f,f);
}
有谁知道上述语句的输出结果为什么是0和0.000000吗?

1023164945 发表于 2013-10-6 20:47:40

”(int)f=%d“中%d是表示整型;

" f=%f “   中   ”%f“表示的是浮点型;

整型与浮点型应该懂了吧???

DragonL915 发表于 2013-10-6 20:53:24

1023164945 发表于 2013-10-6 20:47 static/image/common/back.gif
”(int)f=%d“中%d是表示整型;

" f=%f “   中   ”%f“表示的是浮点型;


那后者不是应该正常显示的吗?为什么输出是0.000000呢?

1023164945 发表于 2013-10-6 21:42:48

DragonL915 发表于 2013-10-6 20:53 static/image/common/back.gif
那后者不是应该正常显示的吗?为什么输出是0.000000呢?

因为在 “printf”里面不能强制类型转换,第一个为0;既然前面都是0,那后面部用说,肯定也是0;
分开用两个“printf”就行了;
要想强制类型转换可以在前面加:
         int a;
         a = f;
就OK了;
希望对你有帮助

DragonL915 发表于 2013-10-6 21:46:07

1023164945 发表于 2013-10-6 21:42 static/image/common/back.gif
因为在 “printf”里面不能强制类型转换,第一个为0;既然前面都是0,那后面部用说,肯定也是0;
分开用 ...

真的诶,谢谢你的帮助:handshake

1023164945 发表于 2013-10-6 21:55:57

DragonL915 发表于 2013-10-6 21:46 static/image/common/back.gif
真的诶,谢谢你的帮助

不客气,我也是新手,教程看完了也是一知半解,来这跟大家交流交流的
其实就调试而已,懂得的话能解决很多问题

eleven_xxq 发表于 2013-10-8 11:49:23

main()
{
      float f=5.75;
      printf("(int)f=%d,f=%f\n",(int)f,f);    //这里第一个变量加上一个强制类型转换就可以了。
}
页: [1]
查看完整版本: 输出问题