for(i=1;i<=k;i++){
k-=i;
}
就是这个k在变化,会不会影响()里面的k
当然会啦,这是同一个变量啊,每次循环都会判断i<=k的。所以k-=i会改变循环次数
会,每一次循环中k发生变化,下一次的判断条件也就跟着改变了
hello,首先欢迎进去C 语言大家庭,这条路你会越走越有趣,前提是。。。你别轻易放弃。。。
从你问的问题来看,你对于for 循环不太理解,我下面弄个机器码给你,方便你理解
int k; ----k初始化
int i;------这个是在for 循环之前定义的,这里假设下
i = 1;---这里是for 循环第一个分号前的初始化;
LOOP:
if (i <= k) { ----这里是for 循环第二个分号前的条件判断;
k -= i; ----这里是for 循环的执行部分;
i++; ----这里是for 循环的第二个分号之后的变量处理;
jump LOOP; ----执行完i++ 之后会跳回到LOOP,继续for执行,这个时候,你发现i 和k 都已经发生变化了
} else {
jump EXIT;
}
EXIT: