C语言经典算法实践:100个程序题目及解答
需积分: 10 164 浏览量
更新于2024-07-26
收藏 128KB DOC 举报
C语言经典算法100例
本资源收录了100个经典的C语言算法问题,涵盖了多种算法类型,包括数组、链表、树、图、排序、搜索等。每个问题都提供了详细的程序分析和源代码,帮助读者快速掌握C语言编程技能。
**程序1:三位数排列**
问题描述:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:为了解决这个问题,我们可以使用三重循环来生成所有可能的三位数,然后再去掉不满足条件的排列。具体来说,我们可以使用三个变量i、j、k来表示百位、十位、个位的数字,然后使用if语句来检查是否满足条件。
源代码:
```c
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);
}
}
}
}
}
```
**程序2:奖金计算**
问题描述:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
程序分析:为了解决这个问题,我们可以使用数轴来分界,定位。我们可以定义一个长整型变量bonus来存储奖金总数,然后使用if-else语句来检查利润的范围,并计算相应的奖金。
源代码:
```c
main(){
long int i;
int bonus1, bonus2, bonus4, bonus6, bonus10, bonus;
scanf("%ld", &i);
bonus1 = 100000 * 0.1;
bonus2 = bonus1 + 100000 * 0.75;
bonus4 = bonus2 + 200000 * 0.5;
bonus6 = bonus4 + 200000 * 0.3;
bonus10 = bonus6 + 400000 * 0.15;
if (i <= 100000)
bonus = i * 0.1;
else if (i <= 200000)
bonus = bonus1 + (i - 100000) * 0.075;
else if (i <= 400000)
bonus = bonus2 + (i - 200000) * 0.05;
else if (i <= 600000)
bonus = bonus4 + (i - 400000) * 0.03;
else
bonus = bonus6 + (i - 600000) * 0.015;
printf("奖金总数:%ld\n", bonus);
}
```
这两个程序展示了C语言在解决实际问题时的强大能力,读者可以通过学习和实践这些程序来提高自己的编程技能。
2010-09-16 上传
2009-09-13 上传
2024-12-17 上传
2024-12-17 上传
2024-12-17 上传
2024-12-17 上传
2024-12-17 上传
地球人撒旦
- 粉丝: 0
- 资源: 1
最新资源
- 深入了解Django框架:Python中的网站开发利器
- Spring Boot集成框架示例:深入理解与实践
- 52pojie.cn捷速OCR文字识别工具实用评测
- Unity实现动态水体涟漪效果教程
- Vue.js项目实践:饭否每日精选日历Web版开发记
- Bootbox:用Bootstrap实现JavaScript对话框新体验
- AlarStudios:Swift开发教程及资源分享
- 《火影忍者》主题新标签页壁纸:每日更新与自定义天气
- 海康视频H5player简易演示教程
- -roll20脚本开发指南:探索roll20-master包-
- Xfce ClassicLooks复古主题更新,统一Linux/FreeBSD外观
- 自建物理引擎学习刚体动力学模拟
- Python小波变换工具包pywt的使用与实例
- 批发网导航程序:自定义模板与分类标签
- 创建交互式钢琴键效果的JavaScript库
- AndroidSunat应用开发技术栈及推介会议