预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

算法设计练习题第2章程序的灵魂--算法算法的特性:1.有穷性2.确定性3.有零个或多个输入4.有一个或多个输出5.有效性描述算法的工具:伪代码、自然语言(含数学符号)、流程图结构化程序的三种基本控制结构1.顺序结构2.选择结构3.循环结构非形式化语言算法上述算法过于繁琐,可修改如下:1.使p=12.使i=13.使p得到p×i4.使i增加15.若i不大于5,则重新执行3.、4.和5.;否则执行6.6.输出最后结果p例2.2打印50名学生中成绩在80分(含80)以上的学号。设第i个学生的学号为ni,第i个学生的成绩为gi算法如下:1.使i=12.若gi≥80,则打印ni和gi3.使i增加14.当i≤50,重新执行2.;否则结束例2.5对于一个大于或等于3的整数,判断它是不是素数算法如下:1.输入n2.i=23.n被i除,得余数r4.若r=0,则输出n“不是素数”,算法结束5.i=i+16.若i<n/2,则重新执行3.;否则执行7.7.输出n“是素数”,算法结束例2.16求5!算法如下:1.t=12.i=23.当i≤5执行:3.1.t=t*i3.2.i=i+14.输出t例2.19求1-1/2+1/3-1/4+…+1/99-1/100算法如下:1.sign=1,sum=1,i=22.当i≤100执行:2.1.sign=-sign2.2.t=sign*(1/i)2.3.sum=sum+t2.4.i=i+13.输出sum例1求三数中的最大数(题1.6)算法一如下:1.输入三数a,b,c2.从a,b,c中找出大者送max3.输出max细化2.得到:2.1.若a>b则a送max2.2.否则b送max2.3.若c>max则c送max依此算法马上可以编程例1算法一的程序设计如下:#include"stdio.h"voidmain(){inta,b,c,max;scanf("%d%d%d",&a,&b,&c);if(a>b)max=a;elsemax=b;if(c>max)max=c;printf("max=%d\n",max);}还可用其它算法解此题算法二如下:1.输入三数a,b,c2.max=a;3.若(b>max)则max=b;4.若(c>max)则max=c;5.输出max程序见下页:例1算法二的程序设计如下:#include"stdio.h"voidmain(){inta,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(b>max)max=b;if(c>max)max=c;printf("max=%d\n",max);}