C语言:以下程序段的输出结果是 ?(求详细解答)

来源:百度知道 编辑:UC知道 时间:2024/05/26 16:37:35
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);
}
printf("\n");
}

我用x86 32位 Linux的GCC编译器编译
结果:
28 70
分析:
main()
{int x, i;
for(i=1; i<=100; i++) //变量i,1到100循环
{ x=i; //x被赋值 x=i
if(++X%2==0) //x先被加一 x=i+1 判断此时x的值是否被2整除
if(++X%3==0) //x先被加一 x=i+2 判断此时x的值是否被3整除
if(++X%7==0) //x先被加一 x=i+3 判断此时x的值是否被7整除
printf("%d ",X); //如果以上判断全通过,即i+1, i+2, i+3的值分别被2,3,7整除,则打印x(此时x的值等于i+3)
}
printf("\n");
}

这个题主要考 “x++” 与 “++x”的区别
x++,先取出x的值,再x=x+1
++x,先x=x+1,再取出x的值(与(x=x+1)效果一致)

28 70

28 70
这个好像是 在1~100中求数m,m同时满足:m-2能被2整除,m-1能被3整除,m能被7整除。

26/2
27/3
28/7