#include <unistd.h>
void triplet(void);
int main(void)
{
triplet();
}
void triplet(void)
{
char i, j, k;
i = '0';
j = '1';
k = '2';
while (i < j)
{
j = i + 1;
k = j + 1;
while (j < k)
{
k = j + 1;
while (k <= '9')
{
write(1, &i, 1);
write(1, &j, 1);
write(1, &k, 1);
if ( ( i != '7' ) && ( j != '8' ) && ( k != '9' ) )
{
write(1, ", ", 2);
}
k++;
}
j++;
}
i++;
}
}
if
语句的目标是控制何时打印数字组合之间的逗号空格分隔符(", "
)。我想在除最后一个(“789”)之外的每个组合之后打印分隔符。
以下条件语句无法按预期工作:
if ( ( i != '7' ) && ( j != '8' ) && ( k != '9' ) )
这个可以:
if ( !( i == '7' && j == '8' && k == '9' ) )
第一个条件有什么问题?
这个 if 语句
if ( !( i == '7' && j == '8' && k == '9' ) )
相当于
if ( !( i == '7') || !(j == '8' ) || !( k == '9' ) )
这又相当于
if ( i != '7' || j != '8' || k != '9' )
这不一样
if ( ( i != '7' ) && ( j != '8' ) && ( k != '9' ) )