首页 > 解决方案 > 为什么在 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;
}

标签: c

解决方案


当循环从 and 开始时,i = 4so设置为 1。当 2 次循环之后为 4 时,and 再次递增到 2。在循环的出口处为 2,因此为 false,因此永远不会执行。jj = 24%2 == 0kj4%4 == 0kkk==1printf


推荐阅读