资料下载
《C程序设计》算法归纳
递归法转换整数为字符
void convert(int n) {int t;
if((t=n/10)!=0) convert(t);
putch(n+'0'); }
判断素数
int isPrime(int n) {int i;
for(i=2;i 求闰年 if((year%4==0&year0!=0)||(year@0)==0) printf(\else printf(\ 求N的阶乘 for(int t=1,i=2;i<=N;i++) t*=i; printf(\ 求m和n最大公约数和最小公倍数 if(a {a=t;a=b;b=t;} r=a%b; while(r) Page 1 of 7 资料下载 {a=b;b=r;r=a%b;} printf(\最大公约数%d,(a,b)最小公倍数%d\,ab/r); 大写字母改小写字母 c1=getchar(); c2=c1+32; printf(\ 小写字母改大写字母 c1=getchar(); c2=c1-32; printf(\ 求3个数由小到大的顺序输出 if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} * 若要求由大到小顺序输出,改'>'为'<'即可。 求ax*x+b*x+c方程的解 if(fabs(a)<=1e-6) printf(\非二次方程\else disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf(\有两相等实根:%f\\n\else if(fabs(disc)>1e-6) {x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf(\有两相异实根:%f和%f\\n\} else {realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf(\有两共轭复根:\\n\ printf(\printf(\ Page 2 of 7 资料下载 } 求Fibonacci数列 ( f(n)=f(n-1)+f(n-2) ) int f[N]={1,1}; for(i=2;i 迭代法求x=sqrt(a) ( 迭代公式:x(n+1)=(x(n)+a/x(n))/2 绝对误差<0.00001 ) double mysqrt(double x0) {double x1,y; x1=(x0+a/x0)/2.0; if(fabs(x1-x0)>0.00001) y=mysqrt(x1); else y=x1; return(y); } 求方程2*x*x*x-4*x*x+3*x-6的根 (1)牛顿迭代法求方程在1.5附近的根 ( 牛顿迭代公式:x(n+1)=x(n)-f(x(n))/f'(x(n)) 绝对误差<0.001 ) double f(double x0) {double x1,y; x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3); if(fabs(x1-x0)>0.001) y=f(x1); else y=x1; return(y); } (2)二分法求方程在(-10,10)之间的根 ( 绝对误差<0.001 ) /* 子程序部分 */ float f(float x) {return(2*x*x*x-4*x*x+3*x-6);} Page 3 of 7 资料下载 - - - - - - - /* 主程序部分 */ float m=-10,n=10;r=(m+n)/2; while(f(r)*f(n)) {if(f(r)*f(n)<0) m=r; else n=r; if(fabs(n-m)<0.001) break; r=(m+n)/2; } printf(\即为根 */ (3)弦截法求根 /* 子程序部分 */ float f(float x) {return(2*x*x*x-4*x*x+3*x-6);} float xpoint(float x1,float x2); {return(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));} float root(float x1,float x2) {int i; float x,y,y1; y1=f(x1); do{ x=xpoint(x1,x2); y=f(x); if(y*y1>0) {y1=y; x1=x;} else x2=x; }while(fabs(y)>=0.0001); return(x); } - - - - - - - /* 主程序部分 */ do{ printf(input x1,x2:\\n\scanf(\f1=f(x1); Page 4 of 7 资料下载 f2=f(x2); }while(f1*f2>=0); x=root(x1,x2); printf(\一个根为:%f\\n\ 冒泡法排序 (由小到大) int a[N+1]; for(i=1;i<=N;i++) /* 输入N个数 (数组输入功能)* scanf(\ for(j=1;j {t=a;a=a[i+1];a[i+1]=t;} for(i=1;i<=N;i++) /* 输出排好的这N个数 printf(\ 选择法排序 (由小到大) /* 子程序部分 */ void sort(int array[],int n) {int i,j,k,t; for(i=0;i for(j=i+1;j if(array[j] t=array[k];array[k]=array;array=t; } 插入法排序 int a[N]; /* 省略数组输入(见上:冒泡法)*/ for(i=1;i while(j>=0&&m>a[j]) {a[j+1]=a[j]; j--; } a[j]=m; } Page 5 of 7 */ (数组输出功能) 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C程序设计算法归纳在线全文阅读。
相关推荐: