"C语言实用经典100题解析和源代码分享"

需积分: 9 1 下载量 110 浏览量 更新于2024-01-02 收藏 307KB DOC 举报
"C语言实用经典100题"是一本经典的C语言题目集,其中包含100道题目。本文主要围绕其中的一道题目展开讨论,题目是:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?并找出这些三位数。 题目要求找出由1、2、3、4这四个数字组成的所有互不相同且无重复数字的三位数。根据题目的描述,我们可以得知这些三位数的百位、十位和个位数字都可以选择1、2、3、4中的任意一个。因此,我们需要通过循环遍历的方式来穷举所有可能的组合,并找出满足条件的三位数。 首先,我们可以使用三重循环来遍历百位、十位和个位数字的所有可能取值。在每一次循环中,我们需要判断当前的组合是否满足互不相同且无重复数字的条件,如果满足则输出该数字。 下面是一种可能的实现方式: ```c #include <stdio.h> int main() { int i, j, k; int count = 0; // 记录满足条件的三位数的个数 for (i = 1; i <= 4; i++) { // 百位数字 for (j = 1; j <= 4; j++) { // 十位数字 for (k = 1; k <= 4; k++) { // 个位数字 if (i != j && i != k && j != k) { // 判断是否满足互不相同且无重复数字的条件 int num = i * 100 + j * 10 + k; // 构造三位数 printf("%d\n", num); count++; } } } } printf("满足条件的三位数的个数为:%d\n", count); return 0; } ``` 运行程序后,我们可以得到满足条件的三位数及其个数。输出结果如下: ```shell 123 124 132 134 142 143 213 214 231 234 241 243 312 314 321 324 341 342 412 413 421 423 431 432 满足条件的三位数的个数为:24 ``` 通过上述程序的计算,我们得到满足条件的三位数的个数为24,且列出了所有满足条件的三位数。 综上所述,根据题目的要求,我们通过循环遍历的方法,找出由1、2、3、4这四个数字组成的所有互不相同且无重复数字的三位数,并统计其个数。通过上述程序运行结果,我们验证了算法的正确性。