我正在编写一个程序,以良好的格式打印两位数字的所有可能的不同组合:
当我使用 && 运算符时,这是输出(这不是所需的输出):
01, 02, 03, 04, 05, 06, 07, 08, 0912, 13, 14, 15, 16, 17, 18, 1923, 24, 25, 26, 27, 28, 2934, 35, 36, 37 , 38, 3945, 46, 47, 48, 4956, 57, 58, 5967, 68, 6978, 7989
当我使用“||”时运算符我给了我这个输出(这是所需的输出):
01, 02, 03, 04, 05, 06, 07, 08, 09, 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 34 , 35, 36, 37, 38, 39, 45, 46, 47, 48, 49, 56, 57, 58, 59, 67, 68, 69, 78, 79, 89
这是代码,if语句在第16行
#include <stdio.h>
int main(void)
{
int i;
int j;
for (i = 0; i < 10; i++)
{
for (j = 1; j < 10; j++)
{
if ( !(i >= j) )
{
putchar(i + 48);
putchar(j + 48);
if (i != 8 || j != 9)
{
putchar(',');
putchar(' ');
}
}
}
}
return (0);
}
您想要打印
,
,除非两个循环都处于最后一次迭代。这相当于说任一循环是否不在其最后一次迭代中,这就是您正在测试的内容。
考虑
if (!(i == 8 && j == 9))
对
if (i != 8 || j != 9)
最终以不同的方式测试同一件事