好奇怪啊~~~~~~~~~~

来源:百度知道 编辑:UC知道 时间:2024/05/09 19:00:07
│main()
│{
│int n=1,i;
│ { for(i=2;n%i;i++);
│ if(i!=n) printf("%d\t",n);
│ }
│}
| 好奇怪啊、、、、在第二步FOR循环的是时候应该无限循环的不是吗??1%任何数都是1啊??但是我的TC为什么可以得到结果啊??结果居然是1.郁闷~~~~~~

数据是有上限的,到了上限后再加1就变成负数了.
比如int在TC里只有2字节,上限就是32767,再加1就变成-32768,再持续加到-1的时候,1%-1==0,循环结束. 然后-1!=1,显示出1

楼上那个说循环只执行1次的,基础知识没学好啊

确实是无限循环,但每次循环都执行if语句,故应该出现无限个1.