C语言常见算法课件.ppt

C语言常见算法课件.ppt

ID:57057029

大小:173.50 KB

页数:44页

时间:2020-07-30

C语言常见算法课件.ppt_第1页
C语言常见算法课件.ppt_第2页
C语言常见算法课件.ppt_第3页
C语言常见算法课件.ppt_第4页
C语言常见算法课件.ppt_第5页
资源描述:

《C语言常见算法课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一素数、随机数、最大值和最小值(1)判断一个数是否为素数素数:只能被1和它本身整除的数。要判断一个正整数m是不是素数,需要用大于1且小于它本身的正整数去除它,只要它能被其中的一个数整除,就说明它不是素数。若所有的数都不能被它整除,说明它是素数。例1:输出3—100之间的所有素数main(){inti,n,k=0;for(n=3;n<100;n++){for(i=2;i

2、tnum)用于产生[0,num)区间的一个整数。其包含在“stdlib.h”头文件中为了使每一次运行都产生一组新的随机数,可以使用randomize()函数是每次均产生不同的随机数。其包含在头文件“time.h”中(3)最大值与最小值我们需要将最大值(或最小值)保存在一个变量中(假设设变量名为max和min),变量的初值我们一般设为数列中的第一个值。例2:产生20个50到200之间的随机整数,并求出其中的素数、最大值和最小值。#include"stdlib.h"#include"time.h"main(){inta[20],b[20],max,min,k,

3、i,j=0;randomize();for(i=0;i<20;i++)a[i]=random(151)+50;产生20个[50,200]区间内的随机数for(i=0;i<20;i++){for(k=2;km

4、ax)max=a[i];if(a[i]

5、;f1=f2;f2=f3;s=s+f2/f1;}printf("s=%f",s);}intf1,f2……s=s+1.0*f2/f1S=s+(float)f2/f1三、迭代问题这种方法是使用某个公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果。例4:用牛顿迭代法求方程在1.5附近的根(精度为10-5)2x3-4x2+3x-6=0迭代公式为:x=x0-f/f1(f1为方程的导数公式)#include"math.h"main(){floatx,x0,f,f1;x0=1.5;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)

6、*x0+3;x=x0-f/f1;while(fabs(x-x0)>=1e-5){x0=x;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;}printf("%10.8f",x);}四、数字分离有些题中经常要求将一个数中的每一位数字或者其中的某些位数字输出,就需要使用到数字分离技术。如在求解同构数等问题时都需要使用到数字分离技术例5:给出一个不多于4位的正整数,要求:求出它是几位数,并且按逆序打印出各位数字main(){inti,j,k=0;scanf("%d",&i);while(i!=0){prin

7、tf("%4d",i%10);i=i/10;k++;}printf("k=%d",k);}以特殊字符做为终止标志例6:统计从键盘输入字符的个数,以'#'结束。#include"stdio.h"main(){charc;inti;c=getchar();for(i=0;c!='#';i++)c=getchar();printf("thenumberis:%d",i);}五、排序问题常用的排序方法有四种:顺序交换法、选择法、冒泡法、插入法a.顺序排序法(n=10)指导思想:先设定a[0]中存放最小值,然后用a[0]分别与其后的每一个数a[j](j=1.

8、.9)进行比较,在比较过程中如果发现有比a[0]小的数,就将a[0

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

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

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