经典算法集合1、求两数和。
#include<stdio.h>main(){int a,b,sum;a=1;b=2;sum=a+b;printf("sum is %d\n",sum);}2、求两数中的大数。
(方法一)#include<stdio.h>main(){int a,b,c;scanf("%d,%d",&a,&b);if(a>b) c=a;else c=b;printf("%d",c);(方法二)#include<stdio.h>main(){int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d\n",c);}int max(int x,int y){int z;if(x>y)z=x;elsez=y;return(z);}3、输入a、b、c的值,求最大值。
(方法一)#include<stdio.h>main(){int a,b,c,max;scanf("%d,%d,%d",&a,&b,&c); max=a;if(max<b)max=b; if(max<c)max=c;printf("%d",max);}(方法二)#include<stdio.h>main(){int a,b,c,max;scanf("%d,%d,%d",&a,&b,&c);if(a<b)if(b<c)printf("max=%d",c);elseif(a<c)printf("max=%d",c);elseprintf("max=%d",a);}4、输入小写字母,求大写字母。
#include <stdio.h>void main(){ char a;printf(“Input a lowercase letter:”);a = getchar();a = a-32;printf(“%c \n”,a);5、通过键盘输入两数,并对调。
(方法一)#include<stdio.h>main( ){int x,y,t;printf(“input x and y:\n”);scanf(“%d,%d”,&x,&y);printf(“x=%d,y=%d”,x,y);t=x;x=y;y=t;printf(“x=%d,y=%d\n”,x,y);}(方法二)void swap(int x, int y){ int z;z=x; x=y; y=z;printf("\nx=%d,y=%d",x ,y);}main( ){ int a= 10,b=20;swap(a,b);printf("\na=%d,b=%d\n",a,b);}(方法三)swap(int *x,int *y){int t ;t=*x ;*x=*y ;*y=t ;}main( ){int a=3,b=5 ;swap(&a,&b) ;printf(“a=%d,b=%d\n”,a,b);}6、按两数从小到大输出。
#include <stdio.h>main( ){ float a , b , t ;printf("input two number:\n") ; scanf("%f%f" , &a , &b) ;if(a>b){t=a ; a=b ; b=t;}printf("sort:%5.3f , %5.3f" , a , b ) ;7、求圆的面积和周长。
#include <stdio.h>void main(){float r,l,s;scanf("%f",&r);l = 2*3.14159*r;s = 3.14159*r*r;printf("l=%8.4f\n",l);printf("s=%8.4f\n",s);8、打印出所有3位数的水仙花。
#include<stdio.h>main(){int i,j,k,n;for(n=100;n<1000;n++){i=n/100; j=n/10-i*10;k=n%10;if(n==i*i*i+j*j*j+k*k*k)printf("%4d",n);}printf("\n");}9、九九乘法表#include<stdio.h>main( ){int i,j;for(i=1;i<=9;i++)for(j=1;j<=9;j++){printf(“%5d”,i*j);if(j==9) p rintf(“\n”);}}10、判断键盘输入的整数是否是素数。
#include<stdio.h>main( ){int ni,nj;scanf(“%d”,&ni);for(nj=2;nj<ni;nj++)if(ni%nj==0) break;if(nj>=ni) printf(“%d是素数”,ni);else printf(“%d是合数”,ni);}11、输出3~100以内的素数。
#include<stdio.h>#include<math.h>main( ){int ni,nj;for(ni=3;ni<=100;ni++){for(nj=2;nj<sqrt(ni);nj++)if(ni%nj==0) break;if(nj>=ni) printf(“\t%d”,ni);}}12、判断两数的最大公约数及最小公倍数。
(方法一)#include<stdio.h>main( ){int m,n,a,b,r;scanf(“%d%d”,&m,&n);a=m;b=n;do{r=a%b;a=b;b=r;}while(b!=0);printf(“%d,%d is %d\n”,m,n,a);printf(“%d,%d is %d\n”,m,n,m*n/a);}(方法二)#include<stdio.h>main( ){int m,n,a,b,r,t;scanf(“%d%d”,&m,&n);if(m<n){t=m;m=n;n=t;}a=m;b=n;while(b!=0)do{r=a%b;a=b;b=r;}printf(“%d,%d is %d\n”,m,n,a);printf(“%d,%d is %d\n”,m,n,m*n/a);}13、通过键盘输入年份,判断是否闰年。
main(){int year;printf("Please input the year:\n");scanf("%d",&year);if((year%4==0&&year%100!=0)||(year%400==0)) printf("%d is a leap year.\n",year);elseprintf("%d is not a leap year.\n",year);14、判断输入字符的类别。
#include<stdio.h>main( ) {char c;printf(“input a character:\n”);c=getchar( );if(c<32)printf(“This is a control character.\n”);else if(c>=‘0’&&c<=‘9’)printf(“This is a digit.\n”);else if(c>=‘A’&&c<=‘Z’)printf(“This is a capital letter.\n”);else if(c>=‘a’&&c<=‘z’)printf(“This is a small letter.\n”);elseprintf(“This is an other characte.\n”);}15、求1!+2!...+20!的和。
#include<stdio.h>main( ){float s=0,t=1;int n;for(n=1;n<=20;n++){t=t*n;s=s+t;}printf(“s=%f”,s) ;}16、求1+...100的和。
#include<stdio.h>main( ){int n,s=0;for(n=1;n<=100;n++)s=s+n;printf(“s=%d”,s) ;}17、求100到200间能被3和7同时整除的数。
#indlude<stdio.h>main( ){int i;for(i=100;i<=200;i++)if(i%3==0&&i%7==0) printf(“%5d”,i);printf(“\n”);}18、求n的阶成。
#include<stdio.h>main( ){int n,s=1,i;scanf("%d",&n);for(i=1;i<=n;i++)s=s*i;printf(“s=%d”,s) ;}19、求分段函数,当x<0,y=3-x;当x>=0,y=2x。
main(){ float x , y;scanf(“%f ”, &x);if ( x <0 ) y = 3 - x ;else y = 2 * x ;printf(“y= %6.2f”, y );}20、求三角形面积(先判断能否构成三角形)。
#include<stdio.h>#include<math.h>main(){int a,b,c;float s,area;scanf("%d,%d,%d",&a,&b,&c);if((a+b>c)&&(a-b)<c){s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%f",area);}else printf("error");}21、输出100以内的偶数。