fuaowei 发表于 2023-2-1 11:25:43

c语言'/'运算符使用时注意事项

   最近才开始学习C语言,我想得到一个浮点数结果,然后发现'/'这个运算符真的有那个大病。{:10_266:}

<1>下面是一段代码:

#include <stdio.h>

int main()
{
        int a=5,b=9;
        float c;
        c=a/b;
        printf("%.2f\n",c);
               
    return 0;
}

如果你想得到5除以9的结果,下面是我用DEV C++运行结果


结果居然是0.00,这就涉及到你声明的变量a和b都是整型变量,C语言中整型相除结果只能是整型。即使你保留两位小数结果也只能是0.00{:10_243:}

<2>将上面代码稍微改变一下
#include <stdio.h>

int main()
{
        int b=9;
      float a=5.0;
        float c;
        c=a/b;
        printf("%.2f\n",c);
               
    return 0;
}
结果如下:

我们发现浮点数/整数结果为浮点数。

<3>同理可得我们将a声明为整型,b声明为浮点型
得到的结果和<2>一样,整数/浮点数也可以得到你想要的浮点数

由此可以发现你想得到正确的浮点数C的结果,你的运算式子中那些变量起码有一个得是浮点型。{:10_277:}

下面是我第八节测试题关于摄氏度和华氏度转换的那道题我做的答案
#include<stdio.h>

int main()
{
        float F;
        float C;
       
        printf("请输入华氏度:");
        scanf("%f",&F);
        C=(F-32)*5/9;//华氏度F转换为摄氏度C
        printf("转换为摄氏度是:%.2f\n",C);
        return 0;
}
关于华氏度小甲鱼给的是一个整数45(建议给一个45.0的参数,45真的很容易让做题的产生误会)
我一开始对F直接用int声明,可想而知,结果大相径庭。
吐血,然后找了半天错误,后来看了答案才知道F的声明也得是浮点型{:10_247:}

我跟大伙说,这个dev C++真的不太好用,有的结果不对你都不知道哪里有问题,也没报错,那个调试也不太会用,最主要是小甲鱼没教一下我们怎么用dev C++ 调试程序。
我还遇到一个极其离谱的bug,有一次我程序写错了,我找到错误改对之后运行结果还是不对,我看答案发现我和答案写的一样,我把答案复制过来直接运行结果没问题,我把答案改成我先前错的,运行一下再改回来,再运行输出结果又不对了{:10_285:} ,你就说离谱不离谱吧。

jackz007 发表于 2023-2-1 11:42:04

          永远不要怀疑一台机器,因为,错误一定是出在我们自己身上!!!

tommyyu 发表于 2023-2-1 11:45:31

支持楼上↑

liuhongrun2022 发表于 2023-2-1 11:59:47

支持楼上↑

sfqxx 发表于 2023-2-1 12:17:48

jackz007 发表于 2023-2-1 11:42
永远不要怀疑一台机器,因为,错误一定是出在我们自己身上!!!

支持楼上↑

lhr123 发表于 2023-2-1 12:57:33

支持楼上↑
队形不能乱

额外减小 发表于 2023-2-1 14:34:40

本帖最后由 额外减小 于 2023-2-1 14:39 编辑

我还遇到一个极其离谱的bug,有一次我程序写错了,我找到错误改对之后运行结果还是不对,我看答案发现我和答案写的一样,我把答案复制过来直接运行结果没问题,我把答案改成我先前错的,运行一下再改回来,再运行输出结果又不对了 ,你就说离谱不离谱吧

这个有可能是因为你运行之前没有编译。还是运行上次编译出的程序。


dev-c++这么有名的程序,
哪有这么容易找出bug

额外减小 发表于 2023-2-1 14:37:02

我跟大伙说,这个dev C++真的不太好用,有的结果不对你都不知道哪里有问题,也没报错,那个调试也不太会用,最主要是小甲鱼没教一下我们怎么用dev C++ 调试程序。

像目前这种简单的代码应该不用调试吧...

我觉得代码写的多了,自然会有经验,像这种错误也就减少了。

ps.这个不是小甲鱼老湿讲过的易错点吗({:10_334:})

中英文泡椒 发表于 2023-2-1 14:38:14

支持楼上↑

zhangjinxuan 发表于 2023-2-1 15:05:55

int a = 7;
float b = 8.6;
printf("%lf", (double)a / (double)b);
你这还是还能出错误,我把电脑吃了{:10_279:}

tommyyu 发表于 2023-2-1 18:06:46

zhangjinxuan 发表于 2023-2-1 15:05
你这还是还能出错误,我把电脑吃了

又没说是怎么出错{:10_256:}#include <iostream>
using namespace std;
int main()
{
        int a = 7;
        float b = 8.6;
        printf("%lf", (double)a / (double)b);
        return 0
}

zhangjinxuan 发表于 2023-2-1 18:11:13

tommyyu 发表于 2023-2-1 18:06
又没说是怎么出错

{:10_306:}

tommyyu 发表于 2023-2-1 18:12:01

zhangjinxuan 发表于 2023-2-1 18:11


能表演个吃电脑么?{:10_256:}

zhangjinxuan 发表于 2023-2-1 18:12:07

tommyyu 发表于 2023-2-1 18:06
又没说是怎么出错

kacakaca,ahhh……,kacakaca,ahhh……,mycomputer!ahhh!kacakaca……

廿四桥 发表于 2023-2-1 18:12:54

支持楼上↑

Minecraft程序猿 发表于 2023-2-1 20:23:07

本帖最后由 Minecraft程序猿 于 2023-2-1 20:27 编辑

Dev-C++集成的是MinGW-w64编译系统,用的gcc编译器,比微软的MSVC都稳定
你这个是代码不规范导致的

还有,编译系统只处理语法错误和一些警告,语义错误是开发者自己的事,编译器不会管的(但可以在编译选项里加上-Wall表示显示所有警告信息(最严格检查)来避免一些不是很深的错误)

tomok 发表于 2023-2-2 19:19:14

Minecraft程序猿 发表于 2023-2-1 20:23
Dev-C++集成的是MinGW-w64编译系统,用的gcc编译器,比微软的MSVC都稳定
你这个是代码不规范导致的



学到了

Overcoat0986 发表于 2023-3-15 20:15:55

支持楼上↑
页: [1]
查看完整版本: c语言'/'运算符使用时注意事项