c语言题如下,能解释一下为什么输出为28 70吗谢谢

#include<stdio.h>
int main()
{
int x,i;
for(i=1;i<=100;i++)
{x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d ",x);

}

}

当i=25时,x=i后x=25
if(++x%2==0)
意思是x先+1,x=25+1=26,26%2==0满足条件继续执行,此时x=26;
同样的
if(++x%3==0) // (26+1) % 3==0满足,此时x=27
if(++x%7==0) // (27+1)%7==0满足,此时x=28
所以输出28;
同理70是一样的。

主要是理解,++x表示是x先自增1再去参与运算;x++是参与运算后再自增1.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-17
当i=26时,x=26
if(++x%2==0)
26%2余0,
x=x+1=27
if(++x%3==0)
27%3余0,
x=x+1=28
if(++x%7==0)
28%7余0,打印此时x=28
相似回答