如果你有更好的见解,欢迎在下方评论区讨论。
#include <stdio.h> int main() { int n; // 定义变量存储用户输入的数字 printf("请输入排列组合的上限数字n(需大于 0):\n"); scanf("%d", &n); // 从标准输入获取数字 // 输入验证 if(n < 0) { printf("错误:输入值必须≥3\n"); return 1; // 非正常退出 } int sum = 0; // 计数器初始化 /* 三层嵌套循环实现全排列: 1. i控制第一个数字的选择 2. j控制第二个数字的选择 3. k控制第三个数字的选择 */ for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { for (int k = 1; k <= n; k++) { /* 互异条件判断: - i≠j 保证前两个数不同 - i≠k 保证第一与第三数不同 - j≠k 保证第二与第三数不同 */ if(i != j && i != k && j != k) { sum++; // 满足条件则计数 } } } } // 输出排列组合计算结果 printf("\n满足条件的三元组数量:\n"); printf("sum = %d\n", sum); return 0; // 程序正常退出 }