C语言经典习题100例(完整版),包含组合三位数和奖金提成等多种题目

0 下载量 125 浏览量 更新于2024-01-17 收藏 360KB DOC 举报
本文要求生成一段长度为2000字的描述,描述的内容是从“(完整版)最新版c语言经典习题100例(最全面).doc”文档中选取的前两个题目。 第一个题目是有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?要求找出并列出所有符合条件的三位数。 解题思路: 这个题目要求找出由数字1、2、3、4组成的所有互不相同且无重复数字的三位数。首先,我们可以从百位开始遍历数字1、2、3、4,然后在十位和个位分别遍历剩余的数字,并判断是否与百位数字相同。如果不相同,则找到一个满足条件的三位数,并将其打印出来。 代码实现: ```c #include <stdio.h> int main() { int count = 0; // 计数器,用于记录符合条件的三位数的个数 for (int i = 1; i <= 4; i++) { for (int j = 1; j <= 4; j++) { for (int 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; } ``` 第二个题目是关于企业发放奖金的计算问题。根据不同的利润额度,有不同的提成规则。题目给出了具体的利润和提成比例,要求计算出最终的奖金。 解题思路: 根据题目中给出的利润和提成比例,我们可以分段计算奖金。首先,我们判断利润是否低于10万元,如果是,则奖金可提10%。然后再判断利润是否在10万元到20万元之间,如果是,则低于10万元的部分按10%提成,高于10万元的部分按7.5%提成。依此类推,根据不同的利润段,计算出各个利润段对应的提成额度,并累加得到最终的奖金。 代码实现: ```c #include <stdio.h> int main() { double profit; // 利润 double bonus; // 奖金 printf("请输入利润(单位:万元):"); scanf("%lf", &profit); if (profit <= 10) { bonus = profit * 0.1; } else if (profit <= 20) { bonus = 10 * 0.1 + (profit - 10) * 0.075; } else if (profit <= 40) { bonus = 10 * 0.1 + 10 * 0.075 + (profit - 20) * 0.05; } else if (profit <= 60) { bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (profit - 40) * 0.03; } else if (profit <= 100) { bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (profit - 60) * 0.015; } else { bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (profit - 100) * 0.01; } printf("奖金为:%.2f万元\n", bonus); return 0; } ``` 以上就是对两个题目的解题思路和代码实现的详细描述。这两个题目较为简单,适合C语言初学者进行练习。同时,这两个题目也展示了C语言中循环和条件判断的基本使用方法。希望读者能通过实际动手编写代码来加深对C语言的理解和掌握。