鱼C论坛

 找回密码
 立即注册
查看: 851|回复: 9

[已解决]运算问题

[复制链接]
发表于 2021-1-4 21:05:54 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
int main()
{
    int i = 8, j = 3;
    i /= j + 12;
    printf("%d", i);
    return 0;
}


i /= j + 12
不应该是 i = i / j + 12
也就是8/3=2,然后2+12=14吗
为什么等于0啊?
最佳答案
2021-1-4 21:29:24
1163028233 发表于 2021-1-4 21:24
我在做课后练习发现不对,然后自己没想明白就来问下,  还有想问下
#include
int main()

依次赋值的话,你可以这样想
#include<stdio.h>
int main()
{
    int a = 2, b = 5, c = 0;
    double x = 1.2, y;
    x=7.2;
    c=x;
    b=c;
    a=b;
    y=a;
    printf("%lf", y);
    return 0;
}
因为a,b,c都是整型变量,所以c=x,y=a都是变成不带小数点的整型数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-4 21:15:40 | 显示全部楼层
肯定是(j+12)作为一个整体啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 21:16:46 | 显示全部楼层
mikele 发表于 2021-1-4 21:15
肯定是(j+12)作为一个整体啊

8/15=0,没问题啊
你干脆不要这么简写了,就直接写成i=i/j+12他不香吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-4 21:24:23 | 显示全部楼层
mikele 发表于 2021-1-4 21:16
8/15=0,没问题啊
你干脆不要这么简写了,就直接写成i=i/j+12他不香吗

我在做课后练习发现不对,然后自己没想明白就来问下,  还有想问下
#include<stdio.h>
int main()
{
    int a = 2, b = 5, c = 0;
    double x = 1.2, y;
    y=a=b=c=x=7.2;
    printf("%lf", y);
    return 0;
}
  这个结果怎么是7
不应该是7.2嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-4 21:27:15 | 显示全部楼层
mikele 发表于 2021-1-4 21:16
8/15=0,没问题啊
你干脆不要这么简写了,就直接写成i=i/j+12他不香吗

不对啊, 写成i=i/j+12
他的结果就成了14
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 21:29:24 | 显示全部楼层    本楼为最佳答案   
1163028233 发表于 2021-1-4 21:24
我在做课后练习发现不对,然后自己没想明白就来问下,  还有想问下
#include
int main()

依次赋值的话,你可以这样想
#include<stdio.h>
int main()
{
    int a = 2, b = 5, c = 0;
    double x = 1.2, y;
    x=7.2;
    c=x;
    b=c;
    a=b;
    y=a;
    printf("%lf", y);
    return 0;
}
因为a,b,c都是整型变量,所以c=x,y=a都是变成不带小数点的整型数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 21:31:41 | 显示全部楼层
1163028233 发表于 2021-1-4 21:27
不对啊, 写成i=i/j+12
他的结果就成了14

他要的答案就是14
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-4 21:37:09 | 显示全部楼层
mikele 发表于 2021-1-4 21:31
他要的答案就是14

那为什么  这样写 i /= j + 12     程序出来的是0 而不是14
按书上讲的 i = i / j + 12和i /= j + 12  这两个值应该相等啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 21:40:27 | 显示全部楼层
1163028233 发表于 2021-1-4 21:37
那为什么  这样写 i /= j + 12     程序出来的是0 而不是14
按书上讲的 i = i / j + 12和i /= j + 12   ...

第二种写法i/=j+12应该理解为i=i/(j+12),这里的j+12看作一个整体,也就是等号右边的是一个整体
第一种写法i=i/j+12就是字面意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-4 21:45:32 | 显示全部楼层
mikele 发表于 2021-1-4 21:40
第二种写法i/=j+12应该理解为i=i/(j+12),这里的j+12看作一个整体,也就是等号右边的是一个整体
第一种写 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 06:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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