c - 为什么在 4%4==0 程序后的嵌套循环中不打印 4?
问题描述
该程序显示从 1 到 10 的素数,并且工作正常。但是为什么当 i 变成 4 并且 j 变成 4 - 如果条件 4%4==0 并且不显示 4 时它不会进入?
#include <stdio.h>
int main()
{
int i,j,k = 1;
for(i=2;i<=10;i++)
{
k=0;
for(j=2;j<=i;j++)
{
if(i%j==0)
k++;
}
if(k==1)
printf("%d\n",i);
}
return 0;
}
解决方案
当循环从 and 开始时,i = 4
so设置为 1。当 2 次循环之后为 4 时,and 再次递增到 2。在循环的出口处为 2,因此为 false,因此永远不会执行。j
j = 2
4%2 == 0
k
j
4%4 == 0
k
k
k==1
printf
推荐阅读
- ios - 如何在 Swift 中修复 UILabel 的剪切
- powershell - 如何使用 PowerShell 压缩文件(没有 PS 版本 5 或 .NET Framework 4.5)
- javascript - RegExp 在在线测试仪上显示为真时返回假
- javascript - 在玩笑测试期间启动 redis 服务器
- android - 如何在没有 Google SDK 的情况下在 Unity 中启用 Instant App?
- gradle-kotlin-dsl - 从 buildscript 构造中调用在第三方 gradle 文件中声明的函数
- jquery - Jquery 使用回车键提交特定输入
- ios - 如何在我的堆栈中找到调用 viewController?
- c - 当我尝试运行此代码时,它没有给我任何输出
- python - 使用 CVXPY 库时出现分段错误(核心转储)