C语言程序:生成三位数的所有排列组合 (无循环)
#include <stdio.h>
int main() { int a, b, c; printf('请输入三个不同的数字: '); scanf('%d %d %d', &a, &b, &c);
if (a == b || a == c || b == c) {
printf('输入的数字有相同的数\n');
return 0;
}
printf('由这三个数字组成的三位数如下:\n');
printf('%d%d%d\n', a, b, c);
printf('%d%d%d\n', a, c, b);
printf('%d%d%d\n', b, a, c);
printf('%d%d%d\n', b, c, a);
printf('%d%d%d\n', c, b, a);
printf('%d%d%d\n', c, a, b);
return 0;
}
// 使用递归函数生成排列组合 void generate_permutations(int a, int b, int c) { printf('%d%d%d\n', a, b, c); printf('%d%d%d\n', a, c, b); }
int main() { int a, b, c; printf('请输入三个不同的数字: '); scanf('%d %d %d', &a, &b, &c);
if (a == b || a == c || b == c) {
printf('输入的数字有相同的数\n');
return 0;
}
printf('由这三个数字组成的三位数如下:\n');
generate_permutations(a, b, c);
return 0;
}
原文地址: https://www.cveoy.top/t/topic/oJZJ 著作权归作者所有。请勿转载和采集!