常用算法主要分布: 第四章第五章第六章一、表达式计算一、表达式计算函数编写,使其按给出的表达式计算。(x-1)cos(2x - 10 │sin(x) │) fun1(x)= ────────────── (x^2+1) double fun1( double x ) { double y; return y; } y=(x-1) *cos(2 *x-10 *fabs(sin(x)))/(x *x+1); 熟记简单数学函数二、分支函数二、分支函数函数编写,计算分段函数。_________ ┌√ ^3 当x >=1 时 fun2(x)= │└ln│x│+ 当x < 1 时 double fun3( double x ) { double y; return y; } if (x>=1) y=sqrt( *x*x*x); else y=log(fabs(x))+; 三、累加、连乘三、累加、连乘 1 1、循环条件、循环条件?次数控制(累加/连乘的项数 n) ?用误差控制(直到某一项小于或大于某个数) ?使用终止标记 2 2、循环体、循环体?求和?求每一项:从前一项求出后一项,或单独求每一项?为下一项做准备 3 3、、循环初值: 循环初值: ?设为 0或设为第一项?注意双重循环设初值的位置例计算 p=1 ×2×3× ······ ×n main( ) { int i,n; long p; scanf( ”%d ”,&n ); i=1;p=1; while ( i<=n i<=n ) { p p* * =i =i ; i++ i++ ; } printf (” p=%ld\n ”,p); } 重复到重复到 n n次次, ,也可以写成也可以写成 i<n+1 i<n+1 求求 1!+ 1!+ 1/ 1/ 2!+1/3!+ 2!+1/3!+ ……+1/20! +1/20! main() { int i; float sum=0,t=1; for(i=1;i<=20;i++) { t=t / i; sum=sum+t; } printf( “1/ 1!+1/2!+ …+1/20 ! =%f\n ”,sum); } for i=1 to 20 t=t *i sum=sum+t 输出 sum 的值 sum=0,t=1 t=1 sum=1 t=1/2= 1/2 ! sum=1+1/2! t=1/2!/3=1/3! sum=1+1/2!+ 1/3! main() { int i; double a,b,s ; for( i=1; i<=n; i++) { a=a * x; b=b * i; s= s+a/b ;} printf( “s =%.2f\n,s); } 计算计算 S=1 S=1 + +x+x x+x 2 2/2!+x /2!+x 3 3/3!+........+ /3!+........+ x x n n/n /n! ! a=; b=; s=; )!12( )1(!7!5!3!1 121 753???????????????n x xxxx nn计算 main( ) {float sum , t , x ; int n , k ; scanf ( ”%d%f ” , &n , &x ) ; sum=x ; t=x ; for ( k=2 ; k<=n ; k+ + ) { { t = - t * x* x / ( 2 * k-2) / (2 * k-1) ; sum = sum + t ; } } printf ( ” sum =%f\n ” , sum ) ; } 第一第一项直项直接赋接赋值值计算单项计算单项累加累加实现正负号实现正负号转换转换四、四、求最大、最小、次大、次小求最大、最小、次大、次小求任意 10个数的最大数、最小数,及其下标 main() { int i,n; float a[10]; int max,min ; for(i =0;i<10;i++) scanf( “%f ”,&a[i ]); max=min=0; /*设最大数和最小数的下标都为 0 */ for(i=1;i<10;i++) { if(a[i]> a[ max]) max=i; if(a[i]< a[min ]) min=i; }
c语言常用算法复习 来自淘豆网m.daumloan.com转载请标明出处.