c语言。。。程序题。需详解。。。高手来。
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);
}
printf("\n");
return0;
}
输出结果是什么。。。。详细解释下!!!!
追问:答案是28和70。你能解释下为啥就得出这两个数了?
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);
}
printf("\n");
return0;
}
输出结果是什么。。。。详细解释下!!!!
追问:答案是28和70。你能解释下为啥就得出这两个数了?
答案:for()是一个循环,++x就是x=i+1;if(++x%2==0) 这里++x是x=i+1;
if(++x%3==0) 这里++x上面已经加过一次,所以是x=i+2;
if(++x%7==0) 同理,这里是x=i+3;
printf("%d",x);这里输出的是i+3;
判断一个数,加1能被2整除,加2能被3整除,加3能被7整除
所以当i=25是满足条件,输出的是28,当i=67是满足条件,输出的是70
因此最后输出的是28和70
我分析下
x = i;
++x % 2 == 0 等价于(i + 1) %2 == 0; x = i + 1
++x % 3 == 0 等价于(i + 2) % 3 == 0; x = i + 2
++x % 7 == 0 等价与(i + 3) % 7 == 0; x = i + 3;
然后打印同时符合这些条件的数字
这个题目的目的就是要找从1到100能同时被2,3,7整除的数,
if(++x%2==0)if(++x%3==0)if(++x%7==0) 三条语句就是为了找这个数 ++x%2==0表示被2整除
有不懂,可以追问,如果对LZ有帮助,希望采纳
2870
X从1开始,如果x+1能被2整除、x+2能被3整除、x+4能被7整除,这三个条件同时成立的话,输出X当前的值。最多循环100次。
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
可以改成if(++x%2==0&&++x%3==0&&++x%7==0)
28和7028嘿嘿,我也想知道啊!你告诉我其实就是查找一个数X,这个数要满足以下条件
X>=1&&X<=100&&(x+1)%2==0&&(x+2)%3==0&&(x+3)%7==0
具体我没看,但要++X%2==0肯定不是偶数。
for循环表示要在1-100里面找,后面的if就是一个条件一个条件的过滤。通过三个条件后输出、
++X%2表示这个数要先加1再除以2的余数。是余数,不是除2的结果哦。
上一个:C语言4道编程,请高手指点,谢谢
下一个:c语言提供几种循环语句分别是什么