C语言问题,求助!

victory_Zhu 2014-01-10 09:24:49
void main()
{
int a;
float b;
a=5/4;
b=5/4;
printf("%d\n",5/4); //1
printf("%f\n",5/4); //0.000000
printf("%f\n",b); //1.000000
printf("%d\n",b); //0
printf("%f\n",1.0/3*3); //1.000000
printf("%f\n",1/3); //0.000000
printf("%f\n",1/3*3); //0.000000
}
这个main函数中第二个至第四个printf函数的结果为什么分别是0.000000 1.000000 0
...全文
98 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
victory_Zhu 2014-01-10
  • 打赏
  • 举报
回复
谢谢你们的指点。问题已经解决了。
moobright 2014-01-10
  • 打赏
  • 举报
回复
当除数和被除数都为整型时,结果是取商,而不是以实数形式出现,看这道题,你体会下: 假定x和y为double型,则表达式(x=2,y=x+5/2)的值是_C_____ 。 A、4.500000 B、4 C、4.000000 D、2.000000 当然,若是除数或被除数或者两者都是浮点型的,则商以浮点型为准。
Mr. Code 2014-01-10
  • 打赏
  • 举报
回复
类型不匹配,你的b是float格式存放的,a按照整数存放的,5/4也会当成整数1。%f会按照float去解释你存放的数据,得到当然就不对了。同理%d去取float也是一样的道理。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧