C语言问题 图里面的代码,划红线的部分,它的意义和作用在哪里?
1个回答
展开全部
for(j=2;j<i;j++)
这个循环有两种退出情况:
1 存在一个j, 使得i%j==0成立, 循环提前因为break退出.
这种情况下退出时j<i且i%j==0. 即判断i>j成立. 由于存在i%j==0 即j可以整除i, 那么这个i是合数.
2 不存在任何的j满足i%j==0, 即不会触发break. 那么循环到j<i不成立退出.由于j每次自加1, 那么退出时j=i
这时表示i为素数, i>j不成立.
所以 如果你的题目是要把小于m的所有合数放入数组xx,那么这个答案是正确的.
这个循环有两种退出情况:
1 存在一个j, 使得i%j==0成立, 循环提前因为break退出.
这种情况下退出时j<i且i%j==0. 即判断i>j成立. 由于存在i%j==0 即j可以整除i, 那么这个i是合数.
2 不存在任何的j满足i%j==0, 即不会触发break. 那么循环到j<i不成立退出.由于j每次自加1, 那么退出时j=i
这时表示i为素数, i>j不成立.
所以 如果你的题目是要把小于m的所有合数放入数组xx,那么这个答案是正确的.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询