为了账号安全,请及时绑定邮箱和手机立即绑定

同样是9除4为什么一个是2.25一个是2?

#include <stdio.h>
int main()
{
    int a,b,c,d;
    double result,result1,result2,result3;
    a = 1;
    b = 2;
    c = 3;
    d = 4;
    result1 = a+b;    //在这里体验哦~
    result2 = result1 * c;
    result3 = result2/d;//结果为2.25【result2为浮点型】
    result = (a+b)*c/d;//结果为2【(a+b)*c为整型】
    printf("%f\n", result1);
    printf("%f\n", result2);
    printf("%f\n", result3);
    printf("%f\n", result);
    return 0;
}

result3和result不都是9除去4吗?为什么一个是2.25一个是2?上面声明的时候不都是double吗?

顺便问一下在C语言中2*4-4/2的结果是8-2=6还是(8-4)/2=2?

正在回答

5 回答

result3 = result2/d;//result2为浮点型,d为整型,除法相除有一个小数一个是整数输出结果是小数,result2=9.000000,所以结果是2.250000
result = (a+b)*c/d;//a,b,c,d为整型,(a+b)*c=(1+2)*3=9,除法2个都为整数则输出整数【跟整除类似】(a+b)*c/d=2,因为result为浮点型,所以结果是2.000000

C语言中2*4-4/2的结果是8-2=6


1 回复 有任何疑惑可以回复我~
#1

cjboli 提问者

非常感谢!
2018-08-16 回复 有任何疑惑可以回复我~

是不是 a+b+c*d   最先运算的是乘除?  而不是顺序的。

0 回复 有任何疑惑可以回复我~

……看好了,abcd是整型啊

0 回复 有任何疑惑可以回复我~

当不同数据类型的数据、变量进行运算时,结果为精度高的数据类型。
例如:1/2 的结果为0
     1.0/2 的结果为 0.5

1 回复 有任何疑惑可以回复我~

整形除整形就是整形,浮点除整形就是浮点

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

同样是9除4为什么一个是2.25一个是2?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信