百思不得其解……
main(){int i=1;x=0;n;
scanf("%d",&n);
do
{x++;
i++;
}
while(i!=n);
printf("%d",x);
}
n=1时,
这个程序最后输出的结果为什么是0呢?
#include<stdio.h>
main()
{int i=1,x=0,n;
scanf("%d",&n);
do
{
x++;
i++;
}while(i!=n);/*如果输入为1<=n;出现程序死循环*/
printf("%d",x);
return 0;
}
这里涉及到一个数据溢出的问题,你输入1到显示结果,程序已经循环了65536次了,因为int型在[-32768,32767]中,刚好x的值从0循环回到0.
以上程序不管输入什么都不会构成死循环.