鱼C论坛

 找回密码
 立即注册
查看: 912|回复: 5

[已解决]新手学习C语言

[复制链接]
发表于 2020-9-7 13:33:02 | 显示全部楼层 |阅读模式

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

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

x
想知道s1e8中的问题这样的代码有什么问题?
为什么结果会不一样?

#include <stdio.h>

int main()
{
         int F;
         float C;
          
          printf("请输入华氏度:");
          scanf("%d",&F);
          
          C = (F-32)*5/9;
          
          printf("转换为摄氏度是:%.2f\n",C);
          
          return 0;
}
最佳答案
2020-9-7 18:06:20
  1. #include <stdio.h>

  2. int main()
  3. {
  4.          int F;
  5.          float C;
  6.          
  7.           printf("请输入华氏度:");
  8.           scanf("%d",&F);
  9.          
  10.           C = (F-32.0)*5/9;
  11.          
  12.           printf("转换为摄氏度是:%.2f\n",C);
  13.          
  14.           return 0;
  15. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-7 17:49:42 | 显示全部楼层
与哪段代码结果不一样?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-7 18:06:20 | 显示全部楼层    本楼为最佳答案   
  1. #include <stdio.h>

  2. int main()
  3. {
  4.          int F;
  5.          float C;
  6.          
  7.           printf("请输入华氏度:");
  8.           scanf("%d",&F);
  9.          
  10.           C = (F-32.0)*5/9;
  11.          
  12.           printf("转换为摄氏度是:%.2f\n",C);
  13.          
  14.           return 0;
  15. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-7 18:06:56 | 显示全部楼层
都是整数在运算会截断小数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-8 00:17:57 | 显示全部楼层
warning C4244: '=' : conversion from 'int ' to 'float ', possible loss of data 意思是 int 型转换成 float 型会造成数据丢失

将华氏温度与摄氏温度均改为 double 型或者 float 型 (),就能正常输出

// double 型程序
  1. #include <stdio.h>

  2. int main()
  3. {
  4.          double F;
  5.          double C;
  6.          
  7.           printf("请输入华氏度:");
  8.           scanf("%lf",&F);                                 // double 型的控制符 lf
  9.          
  10.           C = (F-32)*5/9;
  11.          
  12.           printf("转换为摄氏度是:%.2f\n",C);
  13.          
  14.           return 0;
  15. }
复制代码



// float 型程序
  1. #include <stdio.h>

  2. int main()
  3. {
  4.          float F;
  5.          float C;
  6.          
  7.           printf("请输入华氏度:");
  8.           scanf("%lf",&F);                                 // float 型的控制符 f
  9.          
  10.           C = (F-32)*5/9;
  11.          
  12.           printf("转换为摄氏度是:%.2f\n",C);
  13.          
  14.           return 0;
  15. }
复制代码


// 当然 3 楼的做法,也能正常输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-10 15:53:30 | 显示全部楼层
C语言中,/代表整除,如果是整型的话会舍去小数部分,这个时候只要在整数后面加上.0,使其成为一个实数就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 08:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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