为什么初始值(表达式1)必须是2?
为什么把m和n的初始值改为1后,结果就变成只有1不往下循环?
为什么把m和n的初始值改为1后,结果就变成只有1不往下循环?
2017-05-10
如果只把m改为1 的话是没有影响的,但是如果你把n改为1了,任何数都可以被1整除,n的循环在1那里就符合条件直接break跳出循环了,n值不会增加,然后打印出来符合m=n的就只有1=1了。仔细看一下break条件吧
#include <stdio.h>
int main()
{
int m, n;
for(m=1; m<=50; m++)
{
for(n=1; n<=m; n++)
{
if( m%n==0 ) //什么条件下跳出当前循环
break; //这里应该退出当前循环了
}
if(m == n) //n循环结束后,如果m=n的话就输出m
printf("%d ", m);
}
return 0;
}
举报