欢迎来到天天文库
浏览记录
ID:35294286
大小:44.16 KB
页数:6页
时间:2019-03-23
《c语言常用算法总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、C语言常用算法模块的总结一、最大值,最小值问题教材page13/1.6、page36/2.4(2)、(3)、page98例5.1、5.2二、连乘连加问题page113、114、115page129/6.3page129/6.4、6.5三、闰年算法page17、page107四、连续小数相加减page18、page124五、素数、整除问题page18、page124、page126、page127六、大小写字母转换、密码问题page51、page87、page89/4.9、page104、page67、page128七、格式化字符提醒起于page
2、76八、三角形面积问题page86九、一元二次方程page87、page89/4.8、page108十、分段一元函数page100、page110、page111/5.5、5.6十一、位运算page112/5.7、page129/6.2、6.3十二、公约数公倍数page129/6.1十三、迭代法、二分法page129-130/6.11-13C语言常用算法模块的总结一、最大值,最小值问题教材page13/1.6、page36/2.4(2)、(3)、page98例5.1、5.2主要思想:替换+中转关联习语:if句inta,b,c,max;多余的一个
3、max是承载中转的容器scanf(“%d,%d,%d”,&a,&b,&c);max=a;定初值if(maxb){此步的依次赋值体现了赋值运算自右向左的结合次序t=a;先将a的值赋给t,此时a的值空出a=b;将b的值赋给a,b值空出b=t;将t中存储的a的值赋给b
4、,此时t仍回复空值}若混淆其中赋值规律则产生混乱printf(“……”);二、连乘连加问题page113、114、115page129/6.3page129/6.4、6.5主要思想:容器+循环关联习语:while(do……while)、for、(goto)inti,sum=0;循环第一步,定初值,sum可视作是承载运算结果的容器,初为空i=1;while(i<=100)构设循环条件,注意必须是有限循环,否则程序无终止{sum=sum+I;循环第二步,累计结果i++;循环第三步,循环量自增。这两步保证循环为续,皆不可少}printf(“……”);
5、除此之外,用for句型、do……while也可就此推出,虽形式不同,但主要三个部分都不可少,而且过程中的分号和大括号划分不同的意群,因此必须注意。三、闰年算法page107主要思想:自上而下细化关联习语:if、else判断句、if(year%4==0)“==”才是等于号,而“=”号是赋值号{if(year%100==0)分层次的语句{每一层的大括号都要完美配对if(year%400==0)Leap=1;elseleap=0;}elseleap=1;}elseleap=0;闰年的有关规定:上机指导page34闰年算法主要体现了由上而下具体优化的程
6、序设计方法,在表示时要特别注意每一个if都要有其相应的else,可以适当增大不同级别的大括号的缩进以便辨别。四、连续小数相加减page124主要思想:引入可变符号位及可变分母位+循环关联习语:whileints;floatn,t,pi;选float是出于其位数容纳更多的考虑,其位数为10^38t=1;pi=0;n=1.0;s=1;循环第一步,定初值while(fabs(t)>1e-6)选取小微元是为了避免二进制到十进制的转换误差的影响{pi=pi+t;循环第二步,累计结果n=n+2;s=-s;t=s/n;循环第三步,循环量自增,符号位改变}pi
7、=pi*4;除去引入的定义符号位的量之外,此类基本是循环的基本应用。五、素数问题page126intm,I,k;scanf(“%d”,&m);K=sqrt(m);一般的数学函数难找到a^b,故开平方的公式熟记for(i=2;i<=k;i++)for句型集成了初值、循环条件、自增三步if(m%i==0)break;所求只需找到可以整除的数即可输出(即break),若无法找到if(i>k)printf(“%d为闰年”,m);可整除的数则到最后一个最接近k的整数并自增1elseprintf(“%d不是闰年”,m);本题中的“if(i>k)”最为难理解
8、,满足素数的条件是在0~sqrt(m)之间的所有数都不能整除m,所以在程序中只需有一个i满足可整除m即可输出,至于其后的关于i和k的判断则意在如果在0
此文档下载收益归作者所有