int a,b,c,d,i,j,k;
a=10;b=c=d=5;i=j=k=0;
for (;a>b;++b)i++;
while (a>c++)j++;
do k++;while(a>d++);
当执行程序后,i的值是5,j的值是4,k的值是6。
请问这三个值是怎么求出来?
int a,b,c,d,i,j,k;
a=6;//我们把 a=10 改为 a=6, 简化计算
b=c=d=5;
i=j=k=0;
for (;a>b;++b)
{
i++;
}
这个简单,b-a=1 所以 i 自加一次 i=1,b在 a》b 执行之后马上自加。
while (a>c++)
{
j++;
}
这个原理同上 a-b =1 所以 j自加一次。 但是你的答案是错误的,我已经验算过。
do
{
k++;
}while(a>d++);
这个答案是2
之所以会比 j 大一, 原因就是do-while要比 while 语句 多执行一次。 所以k 的自加次数要多1次。
我把a改为了6. 现在改回10.
i++不是应该先引用再加1吗?那第一次执行for(;a>b;++b)i++时,i的值是取0吗?
追答结束后就变成1了。
追问那b可以取6 7 8 9 10,i 就对应 0 1 2 3 4吧?
追答唉。怎么会对应0 1 2 3 4你?自己在看看书吧
本回答被提问者采纳