c语言,数字 1、2、3、4,能组成多少个互不相同且无重复数字的三位 数?请打印输出
时间: 2024-10-27 20:14:10 浏览: 54
在C语言中,要生成所有互不相同且无重复数字的三位数,可以遍历所有可能的百位、十位和个位组合。因为题目给出的数字只有1、2、3、4这四个,所以总共只有四种选择:1作为百位,2、3、4作为十位;同样,剩下的三个数字(除了已选的)可以选择作为个位。我们可以用嵌套循环来实现:
```c
#include <stdio.h>
#include <stdbool.h>
void printUniqueNumbers(int arr[], int size) {
for(int firstDigit = 1; firstDigit <= 4; ++firstDigit) { // 百位
for(int secondDigit = firstDigit + 1; secondDigit <= 4; ++secondDigit) { // 十位,跳过第一个
for(int thirdDigit = secondDigit + 1; thirdDigit <= 4; ++thirdDigit) { // 个位,跳过前两个
printf("%d%d%d ", arr[firstDigit - 1], arr[secondDigit - 1], arr[thirdDigit - 1]);
}
}
}
printf("\n");
}
int main() {
int digits[] = {1, 2, 3, 4};
printUniqueNumbers(digits, 4);
return 0;
}
```
运行这段代码会输出所有可能的三位数组合,注意每个数字之间有一个空格分隔。
阅读全文