如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C语言常考算法C语言常考算法1——求最大、最小值:例如:查找a[]数组中的最小值,n为数组的大小intfunc(inta[],intn){intmax=a[0];for(inti=0;i<n;i++){if(min>a[i])min=a[i];}returnmin;}例如:查找a[]数组中的最大值intfunc(inta[],intn){intmax=a[0];for(inti=0;i<n;i++){if(max>a[i])max=a[i];}returnmax;}C语言常考算法2——求阶乘longfunc(intn){inti;longt=1;for(i=2;i<=n;i++)t*=i;returnt;}C语言常考算法3——求最大公约数欧几里得算法(辗转整除法):gcd(intm,intn){intt,r;if(m<n){t=m;m=n;n=t;}while(n!=0){r=m%n;m=n;n=r;}returnm;}C语言常考算法4——求最小公倍数算法:两数之积除以最大公约数所得的值即为最小公倍数C语言常考算法5——数组元素逆置第一个与最后一个交换,第二个与倒数第二个交换exchange(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-i-1];a[n-i-1]=t;}}C语言常考算法6——冒泡排序思想:相邻的两个数两两比较,如果第一个数大于第二个数,两者交换位置,既将小的排前面,大的排后面sort(inta[],intn){inti,j,t;for(i=n-1;i>0;i--){for(j=0;j<=i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}C语言常考算法7——累加与累乘累加就是对若干个数求和,其最基本的思想就是”反复的做加法”,一般来说,计算机每次只处理两个数的相加运算,所以多个数相加必须通过多次的两两相加来实现例1:用c语言实现1+2+3+4+5+6+7+8+9+10的累加方法1:#include<stdio.h>voidmain(){inti,sum;sum=0;for(i=1;i<=10;i++){sum=sum+i;}printf(“%d”,sum);}方法2:#include<stdio.h>voidmain(){inti,sum;sum=0;i=1;while(i<=10){sum=sum+ii=i+1;}printf(“%d”,sum);}用c语言实现1*2*3*4*5*6*7*8*9*10的累乘方法1:#include<stdio.h>voidmain(){inti,sum;sum=1;for(i=1;i<=10;i++){sum=sum*i;}printf(“%f”,sum);}方法2:#include<stdio.h>voidmain(){inti,sum;sum=1;i=1;while(i<=10){sum=sum*ii=i+1;}printf(“%f”,sum);}C语言常考算法8——整数的各位分离voidinte(intn,inta[]){inti,k=0;while(n){i=n%10;a[k++]=i;n=n/10;}}C语言常考算法9——判断某数为素数素数是指只能被自己和1整除的数intprime(intn){intm;for(m=2;m<=sqrt(n);m++)if(n%m==0)return0;return1;}C语言常考算法10——判断某数为回文数