鱼C论坛

 找回密码
 立即注册
查看: 618|回复: 6

[已解决]why!

 关闭 [复制链接]
抢楼 抢楼 本帖为抢楼帖,欢迎抢楼! 
发表于 2021-12-10 20:12:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include<math.h>
int main()
{
    printf("请输入华氏度:");
    int i;
    double g;
    scanf_s("%d", &i);
   
    g = (i - 32) * 5 / 9;
    printf("转换为摄氏度是:%.2f", g);

   



    return 0;
}
为什么输入45华氏度,输出是7.00摄氏度啊,兄弟们。
最佳答案
2021-12-10 20:23:42
g = (i - 32) * 5 / 9
   =(45 - 32) * 5 / 9
   = 13*5/9
   = 65/9 (因为除号两遍都是int类型,所以结果也是int类型)
   = 7 (余数为2)

你想输出小数的话,有两种办法:
(1)输入i时,占位符不用%d,用%f,这样你输入45,在编译器里是45.0(浮点型)
(2) g = (i - 32) * 5 / 9.0;这样除号一边是浮点型,结果也是浮点型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-10 20:22:58 | 显示全部楼层
#include <stdio.h>
#include<math.h>
int main()
{
    printf("请输入华氏度:");
    int i;
    double g;
    scanf("%d", &i);
   
    g = ((double)i - 32) * 5 / 9; //问题出现在这里,整数乘或除都会变整数的
    printf("转换为摄氏度是:%.2f", g);

   



    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-10 20:23:42 | 显示全部楼层    本楼为最佳答案   
g = (i - 32) * 5 / 9
   =(45 - 32) * 5 / 9
   = 13*5/9
   = 65/9 (因为除号两遍都是int类型,所以结果也是int类型)
   = 7 (余数为2)

你想输出小数的话,有两种办法:
(1)输入i时,占位符不用%d,用%f,这样你输入45,在编译器里是45.0(浮点型)
(2) g = (i - 32) * 5 / 9.0;这样除号一边是浮点型,结果也是浮点型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-12-10 21:22:23 | 显示全部楼层
不行啊,兄弟
#include <stdio.h>
#include<math.h>
int main()
{
    printf("请输入华氏度:");
    int i;
    double g;
    scanf_s("%f", &i);

    g = (i - 32) * 5 / 9;
    printf("转换为摄氏度是:%.2f", g);





    return 0;
}
答案是错的啊,兄弟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-10 21:49:50 | 显示全部楼层
何艺铧 发表于 2021-12-10 21:22
不行啊,兄弟
#include
#include


兄弟呀,你不能用 int 定义i呀,你用int定义,用%f输入也没有呀,i还是一个int类型呀
你需要用float或是double定义 i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-10 21:52:46 | 显示全部楼层
何艺铧 发表于 2021-12-10 21:22
不行啊,兄弟
#include
#include

你i定义为整型int,占位符不是只能用%d么,把9换成9.0就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-12-11 14:48:59 | 显示全部楼层
番杰 发表于 2021-12-10 21:49
兄弟呀,你不能用 int 定义i呀,你用int定义,用%f输入也没有呀,i还是一个int类型呀
你需要用float或 ...

ok,我的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 07:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表