超级简单
#include<stdio.h>int main()
{
int i,j,k;
for(i=100;i<200;i++)
{
k=i/2;
for(j=2;j<=k;j++)
4:
if(!(i%j))
break;
if(j>=k+1) printf("%d",i);
5:
}
return 0;
}
//大佬们,哪个第4:和第5:,加不加{}是什么?加了{}什么都打印不出,没加就是正确的,为什么?
//我是要打印100到200的素数 加上括号和没加上括号的语义是不一样的。
缩进有问题,你把两种代码都拿去代码格式化工具里面(网上随便一搜就有在线格式化工具),格式化一下,看看缩进就明白了 本帖最后由 昨非 于 2020-11-22 11:20 编辑
内层for循环条件是j<=k,第二个if条件是 j>=k+1,加了{}要同时满足,有输出才怪呢
#include<stdio.h>
int main()
{
int i, j, k;
for (i = 100; i < 200; i++)
{
k = i / 2;
for (j = 2; j <= k; j++)
if (!(i % j)) //这个if判断是在for循环内部的
break;
if (j >= k + 1) printf("%d\n", i);//而这个不在for内部,也不应该放在for内部
}
return 0;
} 括号应该这么加
#include<stdio.h>
int main()
{
int i, j, k;
for (i = 100;i<200;i++)
{
k = i / 2;
for (j = 2;j <= k;j++)
{
if (!(i%j))
{
break;
}
}
if (j >= k + 1)
{
printf("%d ", i); // 此处要多加一个空格(或者回车,纵列输出),不然打印出来成一堆了
}
}
return 0;
}
页:
[1]