ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:171KB ,
资源ID:1618664      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1618664.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(非常全的C语言常用算法.doc)为本站会员(99****p)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

非常全的C语言常用算法.doc

1、C 语言常用算法一、基本算法 1交换(两量交换借助第三者)例 1、任意读入两个整数,将二者的值交换后输出。main()int a,b,t;scanf(“%d%d“,printf(“%d,%dn“,a,b);t=a; a=b; b=t;printf(“%d,%dn“,a,b);【解析】程序中加粗部分为算法的核心,如同交换两个杯子里的饮料,必须借助第三个空杯子。假设输入的值分别为 3、7,则第一行输出为 3,7;第二行输出为 7,3。其中 t 为中间变量,起到“空杯子 ”的作用。注意:三句赋值语句赋值号左右的各量之间的关系!【应用】例 2、任意读入三个整数,然后按从小到大的顺序输出。main()i

2、nt a,b,c,t;scanf(“%d%d%d“,/*以下两个 if 语句使得 a 中存放的数最小*/if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; /*以下 if 语句使得 b 中存放的数次小*/if(bc) t=b; b=c; c=t; printf(“%d,%d,%dn“,a,b,c);2累加累加算法的要领是形如“s= s+A”的累加式,此式必须出现在循环中才能被反复执行,从而实现累加功能。 “A”通常是有规律变化的表达式, s 在进入循环前必须获得合适的初值,通常为0。例 1、求 1+2+3+100 的和。main()int i,s;s=0;

3、i=1;while(iai+1)t=ai;ai=ai+1;ai+1=t;for(i=0;ian-2) an-1=x ; /*比最后一个数还大就往最后一个元素中存放*/else /*查找待插位置*/j=0;while( jaj) j+;/*从最后一个数开始直到待插位置上的数依次后移一位*/for(k=n-2; k=j; k- -) ak+1=ak;aj=x; /*插入待插数 */ for(j=0;j=i;k-) ak+1=ak;ai=x; /*插入待插数*/for(i=0;i=m main()float x,eps;scanf(“%f%f“,printf(“n%f,%fn“,x,g(x,eps)

4、;float g(float x,float eps)int n=1;float s,t;s=1; t=1;do t=t*x/(2*n);s=s+(n*n+1)*t; /*加波浪线的部分为直接法描述部分,t 为递推法描述部分*/n+; while(fabs(t)eps);return s;2一元非线性方程求根(1)牛顿迭代法牛顿迭代法又称牛顿切线法:先任意设定一个与真实的根接近的值 x0 作为第一次近似根,由x0 求出 f(x0),过 (x0,f(x 0)点做 f(x)的切线,交 x 轴于 x1,把它作为第二次近似根,再由 x1 求出f(x1),过 (x1,f(x 1)点做 f(x)的切线,交

5、 x 轴于 x2,如此继续下去,直到足够接近(比如|x- x0|=1e-5);printf (“%fn“,x); (2)二分法算法要领是:先指定一个区间x 1, x2,如果函数 f(x)在此区间是单调变化的,则可以根据 f(x1)和f(x2)是否同号来确定方程 f(x)=0 在区间x 1, x2内是否有一个实根;如果 f(x1)和 f(x2)同号,则 f(x) 在区间x 1, x2内无实根,要重新改变 x1 和 x2 的值。当确定 f(x) 在区间x 1, x2内有一个实根后,可采取二分法将x 1, x2一分为二,再判断在哪一个小区间中有实根。如此不断进行下去,直到小区间足够小为止。具体算法如

6、下:(1)输入 x1 和 x2 的值。(2)求 f(x1)和 f(x2)。(3)如果 f(x1)和 f(x2)同号说明在 x1, x2 内无实根,返回步骤(1) ,重新输入 x1 和 x2 的值;若f(x1)和 f(x2)不同号,则在区间x 1, x2内必有一个实根,执行步骤(4) 。(4)求 x1 和 x2 的中点:x 0=(x 1+ x2)/2 。(5)求 f(x0)。(6)判断 f(x0)与 f(x1)是否同号。如果同号,则应在x 0, x2中寻找根,此时 x1 已不起作用,用 x0 代替 x1,用 f(x0)代替 f(x1)。如果不同号,则应在x 1, x0中寻找根,此时 x2 已不起

7、作用,用 x0 代替 x2,用 f(x0)代替 f(x2)。(7)判断 f(x0)的绝对值是否小于某一指定的值(例如 10-5) 。若不小于 10-5,则返回步骤(4)重复执行步骤(4) 、 (5) 、 (6) ;否则执行步骤(8) 。(8)输出 x0 的值,它就是所求出的近似根。例如,用二分法求方程 2x3-4x2+3x-6=0 在(-10,10)之间的根。#include “math.h“main()C 语言常用算法float x1,x2,x0,fx1,fx2,fx0;do printf(“Enter x1scanf(“%f%f“,fx1=2*x1*x1*x1-4*x1*x1+3*x1-6

8、;fx2=2*x2*x2*x2-4*x2*x2+3*x2-6;while(fx1*fx20);do x0=(x1+x2)/2;fx0=2*x0*x0*x0-4*x0*x0+3*x0-6;if(fx0*fx1)1e-5);printf(“%fn“,x0);3梯形法计算定积分定积分 的几何意义是求曲线 y=f(x)、x=a、x=b 以及 x 轴所围成的面积。badxf)(可以近似地把面积视为若干小的梯形面积之和。例如,把区间a, b 分成 n 个长度相等的小区间,每个小区间的长度为 h=(b-a)/n,第 i 个小梯形的面积为f(a+(i-1)h)+f(a+ih)h/2,将 n 个小梯形面积加起来

9、就得到定积分的近似值: niba hiafhiafdxf1 2/)()1()(根据以上分析,给出“梯形法”求定积分的 N-S 结构图:输入区间端点:a,b输入等分数 nh=(b-a)/2, s=0i 从 1 到 nsi=(f(a+(i-1)*h)+f(a+i*h)*h/2s=s+si输出 s上述程序的几何意义比较明显,容易理解。但是其中存在重复计算,每次循环都要计算小梯形的上、下底。其实,前一个小梯形的下底就是后一个小梯形的上底,完全不必重复计算。为此做出如下改进: ba ni hiafbfafhdxf 1)(2/)(2/)()(C 语言常用算法矩形法求定积分则更简单,就是将等分出来的图形当作

10、矩形,而不是梯形。例如:求定积分 的值。等分数 n=1000。40)2*3(dxx#include “math.h“float DJF(float a,float b)float t,h; int n,i;float HSZ(float x);n=1000; h=fabs(a-b)/n;t=(HSZ(a)+HSZ(b)/2;for(i=1;i=n-1;i+) t=t+HSZ(a+i*h);t=t*h;return(t);float HSZ(float x)return(x*x+3*x+2); main()float y;y=DJF(0,4);printf(“%fn“,y);四、其他常见算法1迭代法其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。例如,猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,就只剩一个桃子了。编程求第一天共摘多少桃子。main()int day,peach;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。