c语言基础算法100例
C 语言编程经典 100 例 【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: 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) /*确保i、j、k三位互不相同*/ printf(“%d,%d,%d\n“,i,j,k); } } 【C语言基础算法100例】中的第一例是一个典型的排列组合问题,旨在演示如何用C语言解决此类问题。程序的目的是找出1、2、3、4这四个数字可以组成多少个互不相同且无重复数字的三位数,并打印出来。 1. **问题解析**: - 题目要求组成互不相同的三位数,这意味着每个数字只能在百位、十位、个位上各出现一次。因此,我们需要进行全排列操作,但又要排除掉不符合条件的排列(即三个数字相等的情况)。 2. **程序思路**: - 使用三层循环分别遍历百位、十位和个位的数字,范围从1到4。 - 在内层循环中,通过`if`语句判断当前的i、j、k是否互不相同,确保三位数的每一位数字都不一样。 - 当三个数字都满足条件时,使用`printf`函数打印出这个三位数。 3. **程序源代码详解**: - `main()`函数是程序的入口。 - `int i, j, k`声明了三个变量,用于存储百位、十位和个位的数字。 - `printf("\n")`用来在输出前添加换行符,使输出更易读。 - 第一个`for`循环遍历百位数字。 - 第二个`for`循环遍历十位数字,必须在百位数字之后,因为不能与百位相同。 - 第三个`for`循环遍历个位数字,同样不能与百位和十位相同。 - `if (i!=k&&i!=j&&j!=k)`条件判断确保i、j、k三个变量的值互不相同。 - `printf("%d,%d,%d\n",i,j,k)`输出符合条件的三位数。 接下来的程序2是一个奖金计算的问题,根据利润I的不同区间计算奖金比例,体现了条件分支和数值计算的应用。 1. **问题解析**: - 需要根据利润I的不同范围,计算相应的奖金提成比例。 - 通过定义不同奖金段,利用`if...else if...`语句进行判断并计算。 2. **程序思路**: - 定义变量存储不同利润区间的奖金。 - 通过`scanf`获取用户输入的利润I。 - 利用一系列的条件判断,根据利润I的值计算对应的奖金总和。 3. **程序源代码详解**: - `long int i`用于存储输入的利润值,选择长整型以处理可能的大数值。 - `int bonus`系列变量分别表示不同利润区间的奖金基数。 - `scanf("%ld",&i)`读取用户输入的利润值。 - `if...else if...`结构根据利润I的值确定对应奖金段,并计算奖金总额。 - `printf("bonus=%d",bonus)`输出计算好的奖金总数。 程序3是一个寻找完全平方数的问题,需要找到一个整数,使得其加上100和168后分别是完全平方数。 1. **问题解析**: - 寻找这样的数,它的平方加100和加268后都应是完全平方数。 - 通过遍历1到100000,逐个验证加100和加268后的平方根是否为整数。 2. **程序思路**: - 使用`sqrt()`函数计算平方根。 - 对1到100000的整数进行循环检查。 - 如果一个数的平方根的平方等于原数,则该数为完全平方数。 3. **程序源代码详解**: - `long int i, x, y, z`分别存储遍历的整数、两个平方根。 - `for (i=1; i<100000; i++)`遍历1到99999。 - `x=sqrt(i+100)`和`y=sqrt(i+268)`分别计算加100和268后的平方根。 - `if(x*x==i+100&&y*y==i+268)`判断两个平方根是否都是整数,是则找到了符合条件的数。 程序4是一个日期转换的问题,计算输入的日期是当年的第几天。 1. **问题解析**: - 需要处理不同月份的天数差异,考虑闰年的影响。 2. **程序思路**: - 输入年、月、日,然后根据月份和闰年判断累加的天数。 3. **程序源代码详解**: - `int day, month, year, sum, leap`分别存储日、月、年、累计天数和是否是闰年。 - `scanf`读取用户输入的日期。 - `if...else if...`结构处理不同月份的天数,闰年判断。 - `sum`累加计算当前日期前的天数。 以上四例程序展示了C语言基础算法在解决实际问题中的应用,包括排列组合、条件分支、数学计算以及日期处理等知识点。这些基础算法是C语言学习中的重要组成部分,有助于提升编程能力。
剩余63页未读,继续阅读
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕设和企业适用springboot企业数据管理平台类及跨平台数据交换系统源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及企业协作平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及企业管理智能化平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及情感分析平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及市场调查平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及社交媒体平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及视频内容分发平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及视频编辑平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及视频内容管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及视频直播系统源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及行业资讯平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及消费品管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及员工管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及虚拟银行平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及在线学习平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及直播流媒体平台源码+论文+视频.zip
- 1
- 2
前往页