Ghost_Scholar 发表于 2012-11-5 17:54:34

应该不会停止吧!~这是个死循环

Ak.xuer 发表于 2012-11-5 18:29:30

应该不会结束

冥顽 发表于 2012-11-5 18:46:37

vc6.0 编译器 i = 2147483647 退出循环,超出int的取值范围 i的值就是一个负数,所以i就不再大于0

Zheng_also_evil 发表于 2012-11-5 21:02:12

不懂,围观,看看怎么解决

Do_my_own 发表于 2012-11-5 21:21:56

让我看看,各位大哥 请多多 照顾小弟 再次谢谢。。

颓废的青春 发表于 2012-11-5 21:34:12

绝对不可能 无限循环

090704020006 发表于 2012-11-5 21:45:42

int -32768~32767
32767+1=-32768

最后I输出32767

这,只是开始→ 发表于 2012-11-5 21:50:08

。。。。。。。。。。。。。。。。。。。。。。。。。

朗朗 发表于 2012-11-5 22:44:57

看看答案。

大豁牙 发表于 2012-11-5 22:58:41

超最大值以后把

aleiluyes 发表于 2012-11-6 03:45:15

溢出负就会停?

trinity 发表于 2012-11-6 05:29:07

会结束滴int是有符号滴,至于多少要看什么编译器;int如果是4字节vc里的i=(10000000000000000000000000000000)b;int如果是2个字节的话i=

依然游戏而已 发表于 2012-11-6 08:07:48

应该很快可以处理出来吧

laiwenyou 发表于 2012-11-6 10:32:27

没试过,有试过的吗

坚持→放弃 发表于 2012-11-6 10:47:59

这个我觉得不会结束啊...除非溢出啊

技术宅 发表于 2012-11-6 10:50:36

应该没法通过编译!

水之境界 发表于 2012-11-6 11:02:31

如果int是32位的会在i=2147483648时结束
最后输出2147483647

HelloWrold 发表于 2012-11-6 11:04:14

会结束,当超过int的最大范围时,是一个负数,int四个字节二进制表示为 1000 0000 0000 0000 0000 0000 0000 0000

沙漠之鹰N0.1 发表于 2012-11-6 11:06:36

我想应该是32767。因为是int型,i一直增大,就一直满足i>0,也就一直循环,知道i的值溢出,得到-32768,就退出循环,而-32768之前是32767,所以就输出32767。但是我也还没上机试试,所以楼主还是上机试试把!!!

HelloWrold 发表于 2012-11-6 11:09:28

错误 i = 2147483647 ;在printf()中打印的是i = 2147483647是对的,但是for循环 i++,在i<0;即一个负数时才结束,所以最终结束时 i 的值是 i = 2147483647+1;而打印显示的是 i = 2147483647。亲明白了吗?:lol
页: 1 [2] 3 4 5 6 7
查看完整版本: C脑筋急转弯!!