因为前段时间期末考试,所以总结了一些特变简单,但是又比较典型的算法… //累加 #include<stdio.h> void main() { int n,i,sum=0; printf("/n/n/n please input n:"); scanf("%d",&n); for(i=1;i<=n;i++) sum=sum+i; printf("/n sum=%d/n/n/n ",sum); } //阶乘 #include<stdio.h> void main() { int n,i,t=1; printf("/n/n/n please input n:"); scanf("%d",&n); for(i=1;i<=n;i++) t=t*i; printf("/n resule=%ld/n/n/n ",t); } //阶乘和 #include<stdio.h> void main() { int n,i,t=1,sum=0; printf("/n/n/n please input n:"); scanf("%d",&n); for(i=1;i<=n;i++){ t=t*i; sum=sum+t; } printf("/n sum=%ld/n/n/n ",sum); } //选择法 #include<stdio.h> void main() { int a[10]={4,6,8,2,0,1,5,7,3,9}; int i,j,k; //分别定义内层循环,外层循-环,中间变量 for(j=0;j<9;j++) for(i=j+1;i<9;i++) //内层循环 if(a[i]<a[j]) { k=a[i]; a[i]=a[j]; a[j]=k; } //在本次循环中,每次都使用a[j]位置的元素去比较 for(j=0;j<10;j++) printf("%d/n",a[j]); } //冒泡法 #include<stdio.h> void main() { int a[10]={4,6,8,2,0,1,5,7,3,9}; int i,j,k; //分别定义内层循环,外层循-环,中间变量 for(j=0;j<9;j++) for(i=0;i<9-j;i++) //内层循环 if(a[i]>a[i+1]) { k=a[i]; a[i]=a[i+1]; a[i+1]=k; } //在本次循环中,每次都使用相同元素去比较 for(j=0;j<10;j++) printf("%d/n",a[j]); } //求数组中最大值 #include<stdio.h> void main() { int a[10]={4,6,8,2,0,1,5,7,3,9}; int i,max; max=a[0]; for(i=0;i<10;i++) if(a[i]>max) max=a[i]; printf("max: %d/n",max); } //素数1 #include<stdio.h> #include<math.h> void main() { int i,k,m,flag=1; printf("请输入数字: "); scanf("%d",&m); k=sqrtf(m); //在VC6里面用sqrt for(i=2;i<=k;i++) if(m%i==0) flag=0; if(flag==1) printf("%d 是素数/n",m); else printf("%d 不是素数y/n",m); } //素数2 #include<stdio.h> #include<math.h> void main() { int i,k,m,flag=1; printf("0-100的素数是:"); for(i=1;i<=100;i++) //循环要判断的数字 { k=sqrtf(i); for(m=2;m<=k;m++) if(i%m==0) break; //相除等于0结束循环 if(m<=k) //用于结束循环后的判断 continue; else printf("%5d",i); } printf("/n"); } //最大公约/最小公倍 #include<stdio.h> void main() { int p,m,n,r; printf("Please input m,n: "); scanf("%d,%d",&m,&n); p=m*n; while(n!=0) { r=m%n; m=n; n=r; } //important printf("它们的最大公约数为:%d/n",m); printf("它们的最小公倍数为:%d/n",p/m); } //100以内素数 #include<stdio.h> #include<math.h> void main() { int i,j,n,a[101]; for(i=0;i<100;i++) a[i]=i; //a[0]不用,只用a[1]-a[100] a[1]=0; for(i=2;i<(sqrtf(100));i++) for(j=i+1;j<=100;j++) { if(a[i]!=0&&a[j]!=0) if(a[j]%a[i]==0) a[j]=0; } //把非素数挖掉 printf("/n"); for(i=2,n=0;i<=100;i++) { if(a[i]!=0) { printf("%5d",a[i]); n++; } if(n==10) { printf("/n"); n=0; } } printf("/n"); }