这个代码出错在哪呢,为什么会打印5出来呢?

这个代码到底出错在哪呢,不是规定三个变量都小于等于4了吗,为什么会打印5出来呢?还请各位帮助一下。

img

img

img

img

我没有啊,你确定这个结果和代码对应的上么?


#include <stdio.h>

int main()
{
    int i, j, k;
    printf("\n");
    for (i = 1; i <= 4; i++)
    {
        for (j = 1; j <= 4; j++)
        {
            for (k = 1; k <= 4; k++)
            {
                if (i != k && i != j && j != k)
                {
                    printf("%d,%d,%d\n", i, j, k);
                }
            }
        }
    }
    return 0;
}

我想知道你用的什么编译器:我这边运行出来正常,方法是int main()方法,不是void main()

#include <stdio.h>
int main()
{
    int i,j,k;
    printf("\n");
    for (int i = 1; i <= 4; i++)
    {
        for (int j = 1; j <= 4; j++)
        {
            for (int k = 1; k <= 4; k++)
            {
                if(i!=k && 1!=j && j!=k)
                {
                    printf("%d,%d,%d\n",i,j,k);
                }
            }
        }
    }
   return 0;
}

运行结果:

img

你把k的for后面的分号去掉
你这相当于循环k的时候什么都没做,而后面的代码都在循环外面
所以k永远是5