Онлайн компилятор C

#include <stdio.h> int main() { int g, s, b; int count = 0; for (g = 1; g < 5; g++) { for (s = 1; s < 5; s++) { for (b = 1; b < 5; b++) { printf("%d %d %d", g, s, b); if (g != b && b != s && s != g) { count++; } } } } printf("%d\n", count); return 0; }
这段代码用三重循环枚举了三个变量 g、s、b 从 1 到 4 的所有组合,并打印每个组合。然后判断三个数是否互不相同,如果是则计数器 count 加一。最后输出 count 的值。

- 你的代码在 printf 输出组合时没有换行,所有组合会连在一起输出,导致结果难以阅读。可以考虑在每次输出后添加换行符。
- 你的条件判断 `g != b && b != s && s != g` 虽然能检查三个数互不相同,但注意它没有检查 g 和 s 是否相等,实际上 `s != g` 已经包含了这一项,所以写法正确。不过要确保逻辑覆盖所有两两不等的情况。