C语言 算法初步

C语言 算法初步

ID:38278285

大小:391.95 KB

页数:6页

时间:2019-05-29

C语言 算法初步_第1页
C语言 算法初步_第2页
C语言 算法初步_第3页
C语言 算法初步_第4页
C语言 算法初步_第5页
资源描述:

《C语言 算法初步》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第3讲算法初步一、解题方法一、解题方法分析问题,想出策略;自顶向下,逐步求精。二、算法举例---穷举法例如,编写一个通讯录程序三、算法举例---递推与迭代法通讯录需要存储什么数据?程序的功能四、良好的编程风格输入一个新联系人删除一个联系人显示整个通讯录搜索一个联系人进入、退出程序等……。具体到每一项功能菜单,将这些功能分类别整合用计算机解决问题的步骤数据结构数据对象:分析所研究问题,提炼出性分析问题质相同的数据元素。•数据结构设计选择解决方案对象之间的关系•算法设计编写程序通讯录数据调试程序用于管理的数据程序=数据结构+算法测试程序在此基础上,想出处理的方法---算法如何组织数据C

2、语言提供了丰富的手段算法用程序流程图描述算法算法是指用计算机解决问题的程序或步描述算法的方法有很多骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。程序流程图:图形化的描述程序执行过算法的特征:程(图是工程师的语言)确定性使得思想集中于算法设计,不受语言细逻辑性节干扰有穷性再依据算法,用语言编写程序程序流程图的图形符号:P641开始再继续细化,画子流程图模块调用图显示菜单主程序获取用户选择处理用户选择输入新名字显示整个通讯录进入程序……N用户选择了结束删除名字搜索一个名字Y结束……voidmain()switch(MenuItem){{case1:intflag=0;

3、//在这编写输入一个新的联系人的程序intMenuItem=0;break;printf("通讯录程序");case2://在这编写删除一个联系人的程序printf("1、输入一个新的联系人");break;printf("2、删除一个联系人");case3:printf("3、显示全部联系人信息");//在这编写显示全部联系人信息的程序break;printf("4、查询指定联系人信息");case4:printf("5、退出通讯录程序");//在这编写查询指定联系人信息的程序while(!flag)break;case5:{//在这编写退出通讯录程序的程

4、序printf("请输入菜单序号,选择对应菜单项:");flag++;scanf("%d",&MenuItem);break;default:…//选择语句,控制程序调用分支printf("输入数字错误,请重新输入:");}}}例:求一元二次方程开始ax2+bx+c=0的解输入a,b,cb2-4ac→tYt<0NNt=0Y输出两个解输出一个解输出“无解”结束2#include#includemain(){二、算法举例---穷举法inta,b,c,t;printf("Inputa,b,c:");列出所有可能情况,逐个排查,从中找scanf("

5、%d%d%d",&a,&b,&c);出符合条件的解。t=b*b-4*a*c;if(t<0)printf("Nosolution");elseif(t==0)关键是明确问题所有可能性,注意可能printf("X=%lf",-b/(2.0*a));else{情况应是有限的。doublet0;t0=sqrt((double)t);用什么基本控制结构?printf("X1=%lf,X2=%lf",优点?缺点?循环(-b+t0)/(2*a),(-b-t0)/(2*a));}时间效率可能不高}例:判断给定整数是否是素数问题分析解决方案利用素数的定义来判。只能被1和自己整除数据结构设

6、计对于给定整数x,用2~x-1之间的每个整数整型变量存储素数:intx;试除,若都不能整除则是素数,否则不是素算法设计数。穷举的范围---循环开始和结束:2~x-1一次试除成功(不能整除),并不能说明x数据元素的关系---循环的步进:1是素数,只有所有试除都成功,才能断定x逐个排查的过程---循环的内容:试除是素数;但一次试除失败(能整除),则可断定x不是素数开始#includemain()输入x{intx,t;2→tprintf("Enteraninteger:");scanf("%d",&x);Nt

7、eak;Yx%t==0if(t==x)Nprintf("%disprime",x);elset加1输出“不是素数”输出“是素数”printf("%disn'tprime",x);}结束3例:百钱买百鸡解决方案数据结构:定义变量,结果直接输出。问题描述设:x——公鸡的个数某人有钱百枚,希望买一百只鸡;公鸡5枚钱一y——母鸡的个数只,母鸡3枚钱一只,而小鸡3只1枚钱。试问:如z——小鸡的个数果用百枚钱买百只鸡,可以包含几只公鸡、几只母算法鸡和几只小鸡遍历x、y、z

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。