先是if(++x%2==0) 意思是 看i+1是否能被2整除 ,然后是if(++x%3==0) 是看i+2是否能被3整除,最后是if(++x%7==0) 是i+3是否能被7整除。输出的是i+3 而不是i
这个如果是个选择题 就把这几个选项带进去 首先这个输出的是偶数 逆着算 比较好算
填空的话 就先写出100以内能被7整除的数 这输出的先排除奇数 因为i+1能被2整除 所以i+3也应该被2整除 然后就剩7个数了 再带进去不就简单了
这个语句意思是输出1至100中所有满足
x能被2整除 且 x+1能被3整除 且 x+2能被7整除的数 的 整数x
printf("\n")是输出一个换行符
int x,i; //定义两个整型变量
for(i=1;i<=100;i++) //i从1到101循环
{
x=i; //将i当前循环的值赋值给x,循环体内,i是不变的,记着 IN
if(++x%2==0) //将x加1后是否能被2整除,注意x先加1了,此时x=IN+1
if(++x%3==0) //将x加1后是否能被3整除,注意x先加1了,此时x=IN+2
if(++x%7==0) //将x加1后是否能被7整除,注意x先加1了,此时x=IN+3
printf("%d",x); // 如果条件均满足,打印出x的值,也就是IN+3的值
}
考点:
1、整个循环结束时i等于101
2、++x是先加再判断,可以 修改为
printf("x=%d,i=%d\n",x,i);
就知道了
3、源程序只需要读懂,能模拟运行就更好了,没啥解题思路的。
运行结果是2870,其实是28和70,但是中间没有分开输出,所以连一起了。
26,27,28
68,69,70
只有这两个符合要求28,70