c语言老差1,怎么回事??

[复制链接]
查看11 | 回复2 | 2009-4-24 21:57:41 | 显示全部楼层 |阅读模式
#include
main()
{
int c,f;
scanf("%d",&f);
c=(f-32)/1.8;
printf("c is %d",c);
getch();
}
后面getch(); 是因为我用的是windows版,才加进去的
问题是,我输入50,它显示9,不是应该是10吗?怎么回事??输入212因该是100可是,它显示99,怎么回事呀???

回复

使用道具 举报

千问 | 2009-4-24 21:57:41 | 显示全部楼层
浮点运算问题,浮点和整数转换的时候转换有精度问题。c=(f-32)/1.8; 改成c=(f-32)*10/18; 试试...
回复

使用道具 举报

千问 | 2009-4-24 21:57:41 | 显示全部楼层
#include main() {int c,f;scanf("%d",&f);c=(int)( (f-32)/1.8); ///////////////这里我强制转换了一下 printf("c is %d",c);getch(); } 为什么我用vc6是正确的结果...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行