C语言while()成立为真时

while(n%i==0)

当n为90 i为2时为什么这个为真 不应该不成立么?????????????

首先你这里的输入有误,应该是
while(n%i == 0)
{
...
}
这样的。90对2取余,就是0,判断为真,确实是成立的,相当于语句
while(1)
{
...
}
这样,是个至少执行一次的循环,如果while语句内部不加结束语句的话,这是个死循环。

n%i 是求n除以i的余数 90除以2余数为0 0==0 所以成立喽

n%i是取余的操作,也就是取90/2的余数,而90/2余数为0,所以为真

90%2不等于0吗?有点奇怪(ˉ▽ ̄~) ~

%取余,,,,,,,0==0

%是取余,90对2取余为0,0等于0,肯定为真

成立 0==0,为真

90%2==0, 0==0, 真
%为取余