版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、【Word版本下载可任意编辑】 C程序设计的常用算法算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么构造、使用什么语句以及如何安排这些语句等。通常使用自然语言、构造化流程图、伪代码等来描述算法。 for(i=0; i float fsqrt(float a) float x0, x1; x1=a/2; do x0=x1; x1=0.5*(x0+a/x0); while(fabs(x1-x0)0.00001); return(x1); main() floa
2、t a; scanf(%f, &a); printf(genhao =%fn, fsqrt(a); 十、数制转换 将一个十进制整数m转换成 r(216)进制字符串。 方法:将m不断除 r 取余数,直到商为零,以反序得到结果。下面写出一转换函数,参数idec为十进制数,ibase为要转换成数的基(如二进制的基是2,八进制的基是8等),函数输出结果是字符串。 char *trdec(int idec, int ibase) char strdr, t; int i, idr, p=0; while(idec!=0) idr=idec % ibase; if(idr=10) strdr=idr-10
3、+65; else strdr=idr+48; idec/=ibase; for(i=0; i t=strdr; strdr=strdr; strdr=t; strdr=0; return(strdr); main() int x, d; scanf(%d%d, &x, &d); printf(%sn, trdec(x,d); 十一、字符串的一般处理 1.简单加密和解密 加密的思想是: 将每个字母C加(或减)一序数K,即用它后的第K个字母代替,变换式公式: c=c+k 例如序数k为5,这时 A F, af,B?G 当加序数后的字母超过Z或z则 c=c+k -26 例如:You are good
4、 Dtz fwj ltti 解密为加密的逆过程 将每个字母C减(或加)一序数K,即 c=c-k, 例如序数k为5,这时 ZU,zu,YT 当加序数后的字母小于A或a则 c=c-k +26 下段程序是加密处理: #include char *jiami(char stri) int i=0; char strp,ia; while(stri!=0) if(stri=A&striZ) ia-=26; else if(stri=a&striz) ia-=26; else ia=stri; strp=ia; strp=0; return(strp); main() char s; gets(s); p
5、rintf(%sn, jiami(s); 2.统计文本单词的个数 输入一行字符,统计其中有多少个单词,单词之间用格分隔开。 算法思路: (1)从文本(字符串)的左边开始,取出一个字符;设逻辑量word表示所取字符是否是单词内的字符,初值设为0 (2)若所取字符不是“空格”,“逗号”,“分号”或“感叹号”等单词的分隔符,再判断word是否为1,若word不为1则表是新单词的开始,让单词数num = num +1,让word =1; (3)若所取字符是“空格”,“逗号”,“分号”或“感叹号”等单词的分隔符, 则表示字符不是单词内字符,让word=0; (4) 再依次取下一个字符,重得(2)(3)直
6、到文本结束。 下面程序段是字符串string中包含的单词数 #include stdio.h main() char c,string; int i,num=0,word=0; gets(string); for(i=0;(c=string)!=0;i+) if(c= ) word=0; else if(word=0) word=1; num+; printf(There are %d word in the line.n,num); 十二、穷举法 穷举法(又称“枚举法”)的基本思想是:一一列举各种可能的情况,并判断哪一种可能是符合要求的解,这是一种“在没有其它方法的情况的方法”,是一种“笨”
7、的方法,然而对一些无法用解析法求解的问题往往能奏效,通常采用循环来处理穷举问题。 例: 将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合? main() int i, j, k; printf( 5元 1元 5角n); for(i=1; i=20; i+) for(j=1; j=100-i; j+) k=100-i-j; if(5*i+1*j+0.5*k=100) printf( %3d %3d %3dn, i, j, k); 十三、递归算法 用自身的构造来描述自身,称递归 VB允许在一个Sub子过程和Function过程的定义内部调用自己,即递归Sub子过程和递归Function函数。递归处理一般用栈来实现,每调用自身,把当前参数压栈,直到递归结束条件;然后从栈中弹出当前参数,直到栈空。 递归条件:(1)递归结束条件及结束时的值;(2)能用递归形式表示,且递归向终止条件发展。 例:编fac(n)=n!
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国网安徽省电力有限公司高校毕业生招聘约136人(第二批)笔试参考题库附带答案详解
- 2025南平建瓯市属国有企业招聘37人笔试参考题库附带答案详解
- 2025年石河子工程职业技术学院单招职业技能考试题库附答案解析
- 2025年同德县招教考试备考题库含答案解析(夺冠)
- 2025年河南农业职业学院马克思主义基本原理概论期末考试模拟题带答案解析(必刷)
- 2025年衢州学院马克思主义基本原理概论期末考试模拟题带答案解析
- 2024年重庆工贸职业技术学院马克思主义基本原理概论期末考试题含答案解析(必刷)
- 2025年湖州学院马克思主义基本原理概论期末考试模拟题附答案解析
- 2026年娄底职业技术学院单招职业适应性测试模拟测试卷附答案解析
- 2025年江西信息应用职业技术学院单招职业倾向性测试题库附答案解析
- 2025-2030手术机器人医生培训体系构建与医院采购决策影响因素报告
- 呼伦贝尔市县域经济发展的困境与突破路径研究
- 中远海运博鳌有限公司东屿岛旅游度假区招聘笔试题库2025
- 2025年本科院校图书馆招聘面试题
- 2025-2026学年人教版(2024)初中生物八年级上册教学计划及进度表
- 项目物资退库管理办法
- 2025中国奢华酒店价值重塑与未来图景白皮书
- 2025至2030中国碳纳米管行业市场发展分析及风险与对策报告
- 制冷站5s管理制度
- 湖北中烟2025年招聘综合测试
- 不锈钢管道酸洗钝化方案
评论
0/150
提交评论