C语言下图所示的环中,反复地填入数字1、2、3、4、5、6,要求使得每条边上的3个数之和都相同,请完善以下程序,打印输出各种填法。 QQ图片20210224134855.png 【输入形式】 无 【输出形式】 No1: 1 6 4 3 2 5
时间: 2024-01-07 17:03:48 浏览: 71
数字图像处理实验二直方图均衡C语言.zip
5星 · 资源好评率100%
下面是一种实现方式:
```c
#include <stdio.h>
int main() {
int a, b, c, d, e, f;
int count = 0;
for (a = 1; a <= 6; a++) {
for (b = 1; b <= 6; b++) {
if (b == a)
continue;
for (c = 1; c <= 6; c++) {
if (c == a || c == b)
continue;
for (d = 1; d <= 6; d++) {
if (d == a || d == b || d == c)
continue;
for (e = 1; e <= 6; e++) {
if (e == a || e == b || e == c || e == d)
continue;
f = 21 - a - b - c - d - e; // 由于1~6的和为21,所以f可以直接计算出来
if (f == a || f == b || f == c || f == d || f == e)
continue;
if (a + b + c == d + e + f && a + d + f == c + e + b) {
count++;
printf("No%d:\t%d\t%d\n\t%d\t%d\t%d\n\n", count, a, b, f, c, d, e);
}
}
}
}
}
}
return 0;
}
```
该程序使用了5层循环,枚举了所有的1~6的排列组合,然后计算出f的值,判断是否与前面的数字都不相同。最后,再判断每条边上的和是否相等,如果相等,则输出这种填法。由于有多种可能的填法,程序使用count变量来记录填法的编号。输出时,使用了制表符`\t`来对齐。
阅读全文