资源描述:
《C语言程序设计 任正云 第3章顺序程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章顺序结构程序设计算法C语言概述标准的输入与输出函数标准输出/输入函数字符输入/输出函数3.1.1算法的组成要素3.1算法程序=算法+数据结构程序=算法+数据结构+程序设计方法+语言工具和环境1.算法的特性⑴有穷性⑵确定性⑶有0个或多个输入⑷有1个或多个输出⑸有效性2.算法的组成要素(1)操作(2)结构控制⑴顺序结构。⑵选择结构(分支结构)⑶循环结构(重复结构)。注释框准备框待处理框判断框连接点流程线起止框处理框输出输入框3.1.2算法的表示方法3.1算法1.用自然语言表示算法2.用流程图表示算法3.1.2算法的表示方法3.1算法例如3.1.2算
2、法的表示方法3.1算法3.用N-S流程图来表示算法4.用伪代码表示算法伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。伪代码不用图形符号,书写方便,格式紧凑,便于向计算机语言算法过渡5.用计算机语言表示算法用计算机语言表示算法实际上就是实际的程序。用计算机语言表示算法必须严格遵守所使用的语言的语法规则3.1.3算法设计举例3.1算法【例3.1】:计算1x2x3x4x5(即5!)。算法1:直接写出算式S1:result<=1x2x3x4x5算法2:考虑到1x2x3x4x5可以改写为:(((1x2)x3)x4)x5),S1:p1<=1x2S
3、2:p2<=p1x3S3:p3<=p2x4S4:p4<=p3x5结果在p4里。算法3:S0:p<=1,i<=2S1:p<=pxi,i<=i+1S2:p<=pxi,i<=i+1S3:p<=pxi,i<=i+1S4:p<=pxi,i<=i+1算法4:S0:p<=1,i<=2S1:p<=pxi,i<=i+1S2:如果i小于或等于5,返回重新执行步骤S1及S2;否则,算法结束,此时p中的值就是5!的值。3.1.3算法设计举例3.1算法【例3.1】:计算1x2x3x4x5(即5!)。i<=2P<=1i<=i+1直到i>5p<=p*i传统流程图表示N-S流程图表
4、示【例3.2】:对于一个大于或者等于3的正整数,判断它是不是一个素数。算法:S0:输入nS1:i<=2S2:n被i除得到余数rS3:如果余数r=0,表示n能被i整除,则打印n“不是素数”,算法结束;否则继续执行S4。S4:i<=i+1S5:如果i≤n-1,返回执行S2,否则打印n“是素数”,算法结束3.1.3算法设计举例例3、输入三角形的三边长,求三角形面积。3.1算法main(){floata,b,c,s,area;scanf("%f%f%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c))
5、;/*sqrt()求平方根的函数*/printf("a=%7.2f,b=%7.2f,c=%7.2f",a,b,c);printf("area=%8.3f",area);}输入346↙a=3.00,b=4.00,c=6.00area=5.3333.1.3算法设计举例【例3.4】(百钱百鸡)公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了(百钱百鸡):鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?3.1算法⑴解题思路的分析这是一个有名的不定方程问题:cocks+hens+chicks=100⑴5*cock
6、s+3*hens+chicks/3=100⑵式中:cocks:鸡翁数hens:鸡母数chicks:鸡雏数0~19中的整数0~33中的整数0~100中的整数S1:cocks=0;/*赋初值*/S2:while(cocks<=19)S2.1:找出满足题意的hens、chicks;S2.2:cocks加1;/*cocks=cocks+1*/⑵下面对S2.1细化思路1:把已经确定的cocks带入(1)与(2)中,求解方程,看能否找到满意的解。这种思路不太适合计算机求解。思路2:在每个给定的cocks下,对hens的取值范围内的各个值依次测试,看能找到哪些he
7、ns及chicks满足题意。于是把S2.1细化为:S2.1.1:hens=0;/*赋初值*/S2.1.2:while(hens<=33)S2.1.2.1:找出满足题意的chicks;S2.1.2.2:hens加1;/*hens=hens+1*/⑶对S2.1.2.1细化对S2.1.2.1来说,cocks和hens都已确定,这时的chicks满足:chicks=100–cocks-hens于是S2.1.2.1可细化为:S2.1.2.1:chicks=100–cocks-hens;if(5*cocks+3*hens+chicks/3.0==100)prin
8、tf("%d%d%d",cocks,hens,chicks);#include"stdio.h"void