啊哈磊_编程从这里起步

标题: 紧急求助。大家看看出了什么Bug [打印本页]

作者: ℡面包    时间: 2015-1-30 15:34
标题: 紧急求助。大家看看出了什么Bug
为什么输出值都不对呢?

QQ图片20150130153131.png (54.23 KB, 下载次数: 1)

QQ图片20150130153131.png

QQ图片20150130153215.png (53.88 KB, 下载次数: 0)

QQ图片20150130153215.png

作者: mayue123    时间: 2015-1-30 15:34
本帖最后由 mayue123 于 2015-1-30 17:37 编辑

#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b;
    float c,d;
    a=10;
    b=10;
    c=10.1;
    d=a*b*c;
    printf("%d*%d*%f=%f\n",a,b,c,d); //你想啊,三个数相乘,还有一个是小数,这样的话,它的结果也是小数,也应该用float
        system("pause");
        return 0;
}

MZ]RDTNWI7CO}[F(BA1%)ZC.png (5.07 KB, 下载次数: 0)

MZ]RDTNWI7CO}[F(BA1%)ZC.png

作者: ℡面包    时间: 2015-1-30 15:35
在线坐等大神
作者: mayue123    时间: 2015-1-30 17:09
源码呢 图太模糊 你发源码 我text下
作者: mayue123    时间: 2015-1-30 17:32
我好像看出些什么了,你的第一张图,printf语句的最后一个%d 应该是%f
作者: mayue123    时间: 2015-1-30 17:35
细心!细心!细心!细心!细心!细心!
作者: 趣味的吃    时间: 2015-2-2 08:47
整数乘小数!结果必然是小数!应该用%f!!!

作者: £00hk    时间: 2015-2-21 20:19
肯定错了,你用整型去乘单精度。首先你的类型本来就不一样。乘起来肯定会有错误!!!!还有整型乘单精度型的话,是不会保留小数的。也就是说算出的答案肯定是错的。要想修好这个BUG。我建议把a和b改成float型,或者强制转换。




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2