这是一个for循环,用于在给定范围内打印素数,并在最后打印给定范围内的素数。该程序还打印1作为素数。
程序:
你得到 1 因为你设置而显示为结果
1
k = 1;
和以下循环
for(c=2;c<=a/2;c++){ ...
如果不改变这个 a 是 1 因为 c <= a 没有实现。
a
c <= a
更换
同
if(a > 1) k = 1; else k = 0;
循环中的代码
for(c=2;c<=a/2;c++){ if(a%c==0){ k-=1;break;} else continue; }
有点奇怪。
代替 k-=1; 我会写的 k=0; 因为这清楚表明你希望价值成为现实 0 。你可以删除 else continue; 因为这就是循环无论如何都要做的事情。
k-=1;
k=0;
0
else continue;
您测试素数的代码也会传递给该数字 1 。内心的 for 在这种情况下不输入循环,所以 k 永远不会设置为零和行 (k != 0) ? (printf("%d ", a), s += 1) : printf(""); 采取真正的分支。
for
k
(k != 0) ? (printf("%d ", a), s += 1) : printf("");
简单修复:
(k != 0 && a != 1) ? ...