for(i=100;i;i-=30);执行几次?
来源:百度知道 编辑:UC知道 时间:2024/05/31 15:22:07
70 40 10 -20 -50…… 不是该是无限么?
对于整形数来说由于-32768后就是32767,一个循环是65536个数。
65536除以30,商2184),余数是16
而我们从100减下去,减三次我们得到10(记为头三次)
从余数16以及上面得到的10,我得可以知道16*5+10=90刚好是30的整数倍(这个记为尾三次)。
也就是说要减5个循环,再加上六次(头三次以及尾三次)
所以总次数为
2184*5+6=10926次。
如果为for(i=100;i;i-=32)的话,估计就是死循环了。因为65536是32的倍数,剩下的那个4(100-32*3)就没法减掉了。
如果是
short int i;
执行 10926次。
如果是
long int i;
执行 715827886 次.
run 一下就知道了。
#include<stdlib.h>
#include<stdio.h>
void main()
{
long int k=0;
// long int i;
short int i;
for(i=100;i;i-=30)
{
k=k+1;
};
printf("%d ",k);
}
无数次,因为for中的第二个i是循环结束条件,为0是循环结束,而i的值是100,70,40,10,-20,-50每次减30到不了0,循环就停不下来!
C的布尔型是,非0即1
i不会等于0,应该是死循环
你确定那语句能通过编译吗?我感觉不能,这一句i;i这个变量到底是做什么的,不知道!要去掉i,这句无限循环。
wacs5分析得很对,不错。
for(i=100;i;i-=30);执行几次?
“for(int i=1;i<100;i++)” 与“int i;for(i=1;i<100;i++)”有什么不同?
For I = I to N
for(i=3;i<=5;i++)
for(i=0;i<fl_length1;i++
应该for(i=2;i<m;i++) 还是for(i=2;i<=m;i++)
javascript中的for(i=0;i<5;i++)和for(i=0;i<5;++i)区别
for(i=1;i<10;i++)和for(i=1;i<10;++i)是不是都一样
for(i=0;i<5;i++) {...} 和 for(i=0;i<5;++i) {...}有区别吗?
for ( i = 1 ; i++ < 5 ; i ++ ) i ++ ; 运行后变量i的值为?