混合运算
发表在C语言图书答疑 2016-08-03
是否精华
版块置顶:
#include<stdio.h>
int main()
{
    int a = 1;
    char b = 'A';
    float c = 2.2f;

    double d = a + b + c;
    printf("%f\n",d);

    return 0;
}
//文件后缀都是.c
用Code::Blocks运行时,a b c 任意两个相加可以得到正确结果,但三个加起来结果为空
用C-Free运行时,结果为68.199997
请问他们的原因分别是什么  有没有比较好的编译器推荐,或者说,编译器需要进行什么设置
分享到:
精彩评论 4
again
学分:250 LV4
2016-08-03
沙发
三个数相加,结果就是那个数.
因 'A' 转化为整数是 65
1 +65 + 2.2f = 68.2f, 计算机无法精确表示 浮点数,所以结果是  68.199997
佚名
学分:70 LV3
TA的每日心情
开心
2021-07-05 14:21:40
2016-08-03
板凳
老师,像这种问题,感觉问来问去,归根结底还是我对编译器的深层不了解,有什么书可以让我直接了解到编译器对程序是怎么操作的吗
again
学分:250 LV4
2016-08-03
地板
[FIELDSET][LEGEND]引自:2楼[/LEGEND]
老师,像这种问题,感觉问来问去,归根结底还是我对编译器的深层不了解,有什么书可以让我直接了解到编译器对程序是怎么操作的吗
[/FIELDSET]

回复:
  目前阶段不了解编译器, 这个语言的语法。 而且不同的编译器也不一定一样。 只要把语言的语法熟悉了就好了。
刚开始学有诸多问题,解决一点问题,大脑就进步一点儿。 多写程序,加油!
佚名
学分:70 LV3
TA的每日心情
开心
2021-07-05 14:21:40
2016-08-03
4L
[FIELDSET][LEGEND]引自:3楼[/LEGEND]
[FIELDSET][LEGEND]引自:2楼[/LEGEND]
老师,像这种问题,感觉问来问去,归根结底还是我对编译器的深层不了解,有什么书可以让我直接了解到编译器对程序是怎么操作的吗
[/FIELDSET]

回复:
  目前阶段不了解编译器, 这个语言的语法。 而且不同的编译器也不一定一样。 只要把语言的语法熟悉了就好了。
刚开始学有诸多问题,解决一点问题,大脑就进步一点儿。 多写程序,加油!
[/FIELDSET]

回复:
  恩恩,谢谢您^0^
首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照