这个代码到底出错在哪呢,不是规定三个变量都小于等于4了吗,为什么会打印5出来呢?还请各位帮助一下。
我没有啊,你确定这个结果和代码对应的上么?
#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;
}
运行结果:
你把k的for后面的分号去掉
你这相当于循环k的时候什么都没做,而后面的代码都在循环外面
所以k永远是5