鱼C论坛

 找回密码
 立即注册
查看: 2953|回复: 13

为什么5除以8等于0?

[复制链接]
发表于 2015-1-14 09:46:31 | 显示全部楼层 |阅读模式

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

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

x
亲们,帮帮忙,菜鸟又来讨教各位大神了,教教我哈:shy:


#include <stdio.h>
#include <stdlib.h>
int main()
{

        int a,b,c;
        char z;
        scanf("%d",&a);
        scanf("%c",&z);
        scanf("%d",&b);
        if(z=='+'){c=a+b;}
        if(z=='-'){c=a-b;}
        if(z=='*'){c=a*b;}
        if(z=='/'){c=a/b;}
       
        printf("%d",c);

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-1-14 10:30:16 | 显示全部楼层
:cry
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-1-14 12:51:36 | 显示全部楼层
因为你的 a b c 都是int型的,
除法之后也会返回int型的,
int型的数不存在小数部分.小数部分会被截去~,所以等于0;
同样 8/5 也就会等于1.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-14 14:09:21 | 显示全部楼层
Mr.屎壳螂 发表于 2015-1-14 12:51
因为你的 a b c 都是int型的,
除法之后也会返回int型的,
int型的数不存在小数部分.小数部分会被截去~,所 ...

该怎么解决啊亲。。。帮帮忙嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-14 21:38:16 | 显示全部楼层
我的思维在跳跃 发表于 2015-1-14 14:09
该怎么解决啊亲。。。帮帮忙嘛

改一下数据类型,试试~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 14:35:40 | 显示全部楼层
看你输出的是什么型咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 15:26:47 | 显示全部楼层
改成float
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 17:05:25 | 显示全部楼层
float
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-16 12:57:40 | 显示全部楼层
这样你看可以不
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,b;
    double c;
    char z;
    printf("请输入:")
    scanf("%d,%c,%d",&a,&z,&b);
    switch(z)
    {
    case '+':
        c=a+b;
        break;
    case '-':
        c=a-b;
        break;
    case '*':
        c=a*b;
        break;
    case '/':
        c=1.0*a/b;
        break;
    }
    printf("%f",c);
    return 0;
}
附上结果运行图:
QQ截图20150116125857.png

评分

参与人数 1鱼币 +2 收起 理由
雨落的瞬间 + 2 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-1-16 14:38:13 | 显示全部楼层
啊,这个不就是整除 的问题么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-17 00:15:03 | 显示全部楼层
因为5和8都是int型变量,所以结果也只能是int型变量,5/8本来等于0.625,这里0.625取整后得到0,如果是1.625取整后为1。如果想得到精确结果,可以用5.0/8或者5/8.0或者5.0/8.0,或者把5和8至少其中一个定义为double型变量即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-18 14:07:19 | 显示全部楼层
相互学习。。。貌似我的鱼B没了、、、、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-19 21:15:04 | 显示全部楼层
变量类型的问题,可以转化成float型运算就是小数了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-20 16:42:29 | 显示全部楼层

float
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-24 08:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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