#include<stdio.h>
void main()
{
int a, b;
for (a = 100; a <= 200; a++)
//取100以内所有的数
{
for (b = 2; b < a; b++)
//穷举法判断是否有因子
if (a % b == 0)//有则非质数
break;//跳出本次循环
if (b >= a)//当条件为真则为质数
printf("%d\n", a);
}
}
我想知道的是第二个for循环里指出b小于a 为什么最后又当b>=a的时候输出结果呢
因为没加花括号,所以很容易看错,其实这段代码并没有在第二个for循环内。等效于如下代码:
#include<stdio.h>
void main()
{
int a, b;
for (a = 100; a <= 200; a++)
//取100以内所有的数
{
for (b = 2; b < a; b++)
{
//穷举法判断是否有因子
if (a % b == 0)//有则非质数
{
break;//跳出本次循环
}
}
if (b >= a)//当条件为真则为质数
{
printf("%d\n", a);
}
}
}
养成好的习惯吧,不加花括号至少把缩进给弄好。
不知道你这个问题是否已经解决, 如果还没有解决的话: