鱼C论坛

 找回密码
 立即注册
查看: 960|回复: 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()

依次赋值的话,你可以这样想
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int a = 2, b = 5, c = 0;
  5.     double x = 1.2, y;
  6.     x=7.2;
  7.     c=x;
  8.     b=c;
  9.     a=b;
  10.     y=a;
  11.     printf("%lf", y);
  12.     return 0;
  13. }
复制代码

因为a,b,c都是整型变量,所以c=x,y=a都是变成不带小数点的整型数据
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-1-4 21:15:40 | 显示全部楼层
肯定是(j+12)作为一个整体啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

8/15=0,没问题啊
你干脆不要这么简写了,就直接写成i=i/j+12他不香吗
小甲鱼最新课程 -> https://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嘛
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

依次赋值的话,你可以这样想
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int a = 2, b = 5, c = 0;
  5.     double x = 1.2, y;
  6.     x=7.2;
  7.     c=x;
  8.     b=c;
  9.     a=b;
  10.     y=a;
  11.     printf("%lf", y);
  12.     return 0;
  13. }
复制代码

因为a,b,c都是整型变量,所以c=x,y=a都是变成不带小数点的整型数据
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

他要的答案就是14
小甲鱼最新课程 -> https://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  这两个值应该相等啊?
小甲鱼最新课程 -> https://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就是字面意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

明白了,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-3 04:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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