int x,i;for(i=1;i<=100;i++)(x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)

#include <stdio.h>
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");
}
答案为28 70
想问一下是怎么推断出是28的?硬生生用x+1整除2,x+2整除3,x+3整除7这样一个个试出来的吗?
还有,printf("\n"); 这是输出什么的?怎么会是70呢?
希望大家能帮帮我啊~~~谢谢!!!

先是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个回答  2013-08-15
这个语句意思是输出1至100中所有满足
x能被2整除 且 x+1能被3整除 且 x+2能被7整除的数 的 整数x
printf("\n")是输出一个换行符
第2个回答  2015-12-20
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,但是中间没有分开输出,所以连一起了。
第3个回答  2015-02-04
26,27,28
68,69,70
第4个回答  2019-04-17
只有这两个符合要求28,70
相似回答