请问下,为什么会输出2啊?不应该最低输出3吗?2被++后不就成为3了吗?
那是因为在m循环要先要执行完毕下面的所有执行代码才会返回表达式3,自增1,这也包括了n循环和输出语句。而n循环中是要求n<m,n一次都没有循环,也无法自增1。跳出循环执行输出语句,这样2就输出出来了
#include <stdio.h>
int main()
{
int m, n;
for(m=2; m<=50; m++)
{
for(n=2; n<m; n++)
{
if( m%n==0 )
break;
}
if(m == n)
printf("%d ", m);
}
return 0;
}