标题:运行出来没有显示结果,什么原因呢?
只看楼主
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
得分:2 
支持2楼,那样写确实不对
 s=(y+=y-=m*=y);
这应分四步写
m*=y
y-=m
y+=y
s=y
2013-04-02 20:32
c人er
Rank: 2
来 自:武汉理工大学
等 级:论坛游民
帖 子:45
专家分:56
注 册:2013-3-22
得分:2 
哦哦哦!

超英赶美若等闲…
2013-04-02 21:42
LLC_HJW
Rank: 2
等 级:论坛游民
帖 子:58
专家分:39
注 册:2013-1-11
得分:0 
luguo
2013-04-07 16:46
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:2 
为什么我运行出来是-10啊!你的怎么可能运行出来是-16呢?你把图片附上,计算如下:
m=m*y=2*5=10;
y=y-m=5-10=-5;
y=y+y=-5-5=-10

Maybe
2013-04-07 17:34
vshttp
Rank: 2
等 级:论坛游民
帖 子:22
专家分:75
注 册:2013-4-6
得分:2 
-10,控制流中%d代表后面输出的,%后面代表后面的类型吧,改为其他类型的结果就会出现错误,若没有直接不会输出的,个人观点
2013-04-07 17:59
vshttp
Rank: 2
等 级:论坛游民
帖 子:22
专家分:75
注 册:2013-4-6
得分:0 
#include "stdio.h"
 void main()
 {
    int m=2,y=5;
    int s;
    s=(y+=y-=m*=y);
    printf("s=%d",s);
 }
2013-04-07 18:01
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
得分:0 
各位等于-10的高人,谁来用你们神奇的思路解释下这个代码的结果
程序代码:
#include<stdio.h>

int main()
{
    int x = 1, y = 1;
    
    x += x++;
    y *= y++;
    
    printf("x=%d, y=%d\n", x, y);
    
    return 0; 
}

Compiler mingw5

人生是一场错过 愿你别蹉跎
2013-04-07 18:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-402865-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050459 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved