#为什么这个会陷入死循环 不服来辩
#include<stdio.h>
#include<math.h>
int n=100,i;
int main()
{
for (; n <=200; n++)
{
i = 2;
for (; i <n; i++)
{
if (n % i == 0)break;
}
if (n % i != 0) { printf("%d ", n); }
}
return 0;
}
理论上不会陷入死循环,只是不会打印值
n=101时,i会循环为101,后面判断时i和n都相等,不会打印值。
死循环是不能跳出循环,这个是可以正常跳出的
没有输出结果的if (n % i == 0)break;和 if (n % i != 0) { printf("%d ", n); }矛盾了
从哪里得出这个会死循环的结论的?
#include<stdio.h>
int main()
{
int i,j,num;
for(i=100;i<=200;i++)
{num=0;
for(j=2;j<i;j++)
if(i%j==0)num++;
if(num==0)printf("%d",i);
}
return 0;
}