C语言 经典例题100道1涵盖经典C源程序100题,解密有序数字的排列可能。
158 浏览量
更新于2024-01-19
2
收藏 106KB DOC 举报
经典C语言例题"有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?"
1. 程序分析:
可填在百位、十位、个位的数字都是 1、2、3、4。需要组成所有的排列,然后去掉不满足条件的排列。
2. 程序源代码:
```c
#include <stdio.h>
int main() {
int i, j, k;
printf("\n");
for(i = 1; i < 5; i++) {
for(j = 1; j < 5; j++) {
for(k = 1; k < 5; k++) {
if(i != k && i != j && j != k) {
printf("%d%d%d\n", i, j, k);
}
}
}
}
return 0;
}
```
3. 程序解释:
- 我们需要使用三层循环来遍历所有可能的组合。
- 外层循环控制百位数,从 1 到 4。
- 中间循环控制十位数,从 1 到 4。
- 内层循环控制个位数,从 1 到 4。
- 在每个迭代中,我们可以得到一个三位数。
- 我们使用 if 语句来判断三个数字是否互不相同。
- 如果三个数字满足条件,我们打印该三位数。
4. 程序运行输出:
```
123
124
132
134
142
143
213
214
231
234
241
243
312
314
321
324
341
342
412
413
421
423
431
432
```
以上是一个经典的C语言例题,该题考察了基础的循环和条件判断的使用。通过使用三重循环,我们可以找到由 1、2、3、4 组成的互不相同且无重复数字的三位数,共有 24 个。该例题可以帮助初学者巩固基本的编程思路和语法知识,对理解循环和条件判断具有一定的帮助。同时,也能锻炼分析问题和解决问题的能力。