搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求运行结果
标题:
求运行结果
只看楼主
li凡
等 级:
论坛游民
帖 子:13
专家分:27
注 册:2018-10-7
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:12
求运行结果
#include <stdio.h>
main()
{
float x=1,y;
y=++x*++x;
printf("%f\n",y);
}
答案是6 在dev-c++上运行的是9
求大佬讲解
搜索更多相关主题的帖子:
运行
结果
printf
答案
讲解
2018-10-08 18:52
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
2
楼
得分:3
先要说清楚为何要写成 y=++x*++x;
为的是什么?
2018-10-08 19:42
豆豆的滴
来 自:湖南
等 级:
贵宾
威 望:
33
帖 子:368
专家分:1087
注 册:2018-5-7
第
3
楼
得分:3
先把x加1,x等于2,把2赋予x,再乘以x+1,也就等于2乘3=6了
2018-10-08 19:47
豆豆的滴
来 自:湖南
等 级:
贵宾
威 望:
33
帖 子:368
专家分:1087
注 册:2018-5-7
第
4
楼
得分:0
看错了,。。。
2018-10-08 20:15
ab1412
来 自:M78星球
等 级:
黑侠
威 望:
4
帖 子:103
专家分:537
注 册:2018-3-15
第
5
楼
得分:3
这种题看你编译器怎么理解了,你用TC去试试应该输出是6,VC和DEV的编译器是先执行完两个++,最后运算的是3*3,答案理解的是2*3。这种题没有实际意义。
printf("萌新一枚,请多指教");
2018-10-08 20:50
li凡
等 级:
论坛游民
帖 子:13
专家分:27
注 册:2018-10-7
第
6
楼
得分:0
回复 2楼 吹水佬
额,这是书上的题,我也很无奈。。。
2018-10-09 10:14
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
7
楼
得分:3
以下是引用
li凡
在2018-10-9 10:14:27的发言:
额,这是书上的题,我也很无奈。。。
所以说这些“以其昏昏,使人昭昭”的教科书害人呀!
作者不知道这是C/C++标准中“未定义行为”,根本就没有什么什么结果可言可研究。
所谓“未定义行为”,简单通俗地讲,就是C/C++标准明确告诉编译器不需要考虑的情况。
很多人会将“未定义行为”和“实现定义行为”弄混,然后告诉你在某某编译器上先做什么后做什么结果所以是多少,都是瞎扯。
2018-10-09 10:44
小昆
等 级:
论坛游民
帖 子:22
专家分:13
注 册:2018-10-6
第
8
楼
得分:3
float 不是小数吗? 为什么还要定义成小数
2018-10-11 23:33
小昆
等 级:
论坛游民
帖 子:22
专家分:13
注 册:2018-10-6
第
9
楼
得分:0
不是打错了,1是整数,为什么定义成小数?
2018-10-11 23:34
f563605580
等 级:
新手上路
帖 子:1
专家分:3
注 册:2018-9-13
第
10
楼
得分:3
回复 9楼 小昆
写法不是很标准,各个编译器运行会有差异,建议采用标准写法
2018-10-12 00:54
13
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-490249-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.138984 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved