鱼C论坛

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

[已解决]sle8课后作业动动手1

[复制链接]
发表于 2021-3-11 19:34:32 | 显示全部楼层 |阅读模式

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

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

x
为什么,我这int i,然后出来的结果就是7.00,不是7.22,我对比了下和小甲鱼的程序,就只有一个int和float的区别,45用int不是挺好的嘛
最佳答案
2021-3-11 19:48:52

这样也可以,就是让算式中存在了不是整型的数,结果也就不会再默认成整型了
但是你想一下温度什么的有小数不是很正常吗,例如37.2°,所以还是float型比较合适
ff097138cd23dfa50d5d45987878310.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-3-11 19:36:09 | 显示全部楼层
这是我的代码
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int i;
  5.         float j;
  6.         printf("请输入华氏度:");
  7.         scanf("%d",&i);
  8.         j=(i-32)*5/9;
  9.         printf("转换为摄氏度是;%.2f\n",j);
  10.         return 0;
  11. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-11 19:45:37 | 显示全部楼层
因为你的 i 定义为了整型
所以(i-32)*5/9的结果默认是整型d
j=(i-32)*5/9;这一步就相当于将(i-32)*5/9计算得到的结果进行了强制转化为float型
看个例子,这段代码中k的值

  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int i,k;
  5.         float j;
  6.         printf("请输入华氏度:");
  7.         scanf("%d",&i);
  8.         k = 5/9;
  9.         printf("%d\n",k);
  10.         j=(i-32)*5/9;
  11.         printf("转换为摄氏度是;%.2f\n",j);
  12.         return 0;
  13. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-11 19:47:12 | 显示全部楼层

  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int i;
  5.         float j;
  6.         printf("请输入华氏度:");
  7.         scanf("%d",&i);
  8.       
  9.         j=(i-32)*5/9.0;
  10.         printf("转换为摄氏度是;%.2f\n",j);
  11.         return 0;
  12. }

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-11 19:48:52 | 显示全部楼层    本楼为最佳答案   

这样也可以,就是让算式中存在了不是整型的数,结果也就不会再默认成整型了
但是你想一下温度什么的有小数不是很正常吗,例如37.2°,所以还是float型比较合适
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-11 20:38:37 | 显示全部楼层
yuedong 发表于 2021-3-11 19:48
这样也可以,就是让算式中存在了不是整型的数,结果也就不会再默认成整型了
但是你想一下温度什么的有小 ...

#include <stdio.h>

int main()
{
        float k;
        k = 3/2;
        printf("%.2f\n",k);
        return 0;
}
那你看,我这里,出来的结果是1.00,我把那个k=3/2改成k=3/2.0或者k=3.0/2,结果都能出1.50,我想是不是计算的结果,只要式子中有一个数是小数,结果就能出小数,就好像上面的代码,j=(i-32)*5/9,把任何一个数改成小数就能出正确的结果,32.0或5.0或9.0,其实float i 也相当于把i确定为小数。我这样想的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-11 20:39:14 | 显示全部楼层
yuedong 发表于 2021-3-11 19:48
这样也可以,就是让算式中存在了不是整型的数,结果也就不会再默认成整型了
但是你想一下温度什么的有小 ...

谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 11:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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