常见算法.docx

上传人:b****6 文档编号:16308973 上传时间:2023-07-12 格式:DOCX 页数:16 大小:16.44KB
下载 相关 举报
常见算法.docx_第1页
第1页 / 共16页
常见算法.docx_第2页
第2页 / 共16页
常见算法.docx_第3页
第3页 / 共16页
常见算法.docx_第4页
第4页 / 共16页
常见算法.docx_第5页
第5页 / 共16页
常见算法.docx_第6页
第6页 / 共16页
常见算法.docx_第7页
第7页 / 共16页
常见算法.docx_第8页
第8页 / 共16页
常见算法.docx_第9页
第9页 / 共16页
常见算法.docx_第10页
第10页 / 共16页
常见算法.docx_第11页
第11页 / 共16页
常见算法.docx_第12页
第12页 / 共16页
常见算法.docx_第13页
第13页 / 共16页
常见算法.docx_第14页
第14页 / 共16页
常见算法.docx_第15页
第15页 / 共16页
常见算法.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

常见算法.docx

《常见算法.docx》由会员分享,可在线阅读,更多相关《常见算法.docx(16页珍藏版)》请在冰点文库上搜索。

常见算法.docx

常见算法

1、求阶乘

#include

voidmain()

{

inti,t;

i=1;

t=2;

while(t<=5)

{

i=i*t;

t=t+1;

}

printf("5的阶乘等于%d\n",i);

}

2、求鸡和兔的个数

/*鸡兔同笼,总头数16,总脚数40*/

#include

voidmain()

{

inth,f,x,y;

h=16;

f=40;

y=(f-2*h)/2;

x=h-y;

printf("cock=%d,rabbit=%d\n",x,y);

}

3、判断闰年

#include

voidmain()

{

intyear,leap;

scanf("%d",&year);

if((year%4==0&&year%100!

=0)||(year%400==0))

leap=1;

elseleap=0;

if(leap)

printf("%dis",year);

elseprintf("%disnot",year);

printf("aleapyear!

\n");

}

4、求最大值

#include

main()

{

inta,b,c,max;

printf("pleaseinputa,b,c:

\n");

scanf("%d,%d,%d",&a,&b,&c);

max=a;

if(max

max=b;

if(max

max=c;

printf("themaxis:

%d\n",max);

}

5、大小写字母转换

#include

voidmain()

{

charc1,c2;

c1='a';

c2='b';

c1=c1-32;

c2=c2-32;

printf("%c,%c\n",c1,c2);

}

6、自增(自减)

#include

voidmain()

{

inti=0,j;

j=i++;

printf("%d,%d\n",i,j);

i=0;

j=++i;

printf("%d,%d\n",i,j);

}

7、强制转换

#include

voidmain()

{

floatx;

inti;

x=32767.0;

i=(int)x%3;

printf("x=%f,i=%d\n",x,i);

}

注意下面的区别/*(int)(x+y),(int)x+y;*/

8、无符号数据的处理(重要,结合二进制位来考虑)

#include

voidmain()

{

unsignedinta=65535;

intb=-2;

printf("a=%d,%o,%x,%u\n",a,a,a,a);

printf("b=%d,%o,%x,%u\n",b,b,b,b);

}

9、中间桥变量的运用

#include

voidmain()

{

inta,b,t;

scanf("%d,%d",&a,&b);

if(a>b)

t=a;

a=b;

b=t;

printf("a=%d,b=%d\n",a,b);}

本题旨在突出if条件判断只能控制其后的一句,包括一句符合语句

10、条件运算符

#include

voidmain()

{

charch;

scanf("%c",&ch);

ch=(ch>='A'&&ch<='Z')?

(ch+32):

ch;

printf("%c\n",ch);

}

11、费波那列数列

#include

voidmain()

{

longintf1,f2;

inti;

f1=1;

f2=1;

for(i=1;i<=20;i++)

{

printf("%12ld%12ld",f1,f2);

if(i%2==0)

printf("\n");

f1=f1+f2;

f2=f2+f1;

}

}

12、打印倒直角三角形

#include

voidmain()

{

inti,j;

for(i=1;i<=10;i++)

{

for(j=1;j<=10+1-i;j++)

printf("*");

printf("\n");

}

}

13、打印等腰三角形

#include

voidmain()

{

inti,j;

for(i=1;i<=10;i++)

{

for(j=1;j<=10-i;j++)

printf("");

for(j=1;j<=2*i-1;j++)

printf("*");

printf("\n");

}

}

14、打印直角三角形

#include

voidmain()

{

inti,j;

for(i=1;i<=10;i++)

{

for(j=1;j<=i;j++)

printf("*");

printf("\n");

}

}

15、猴子吃桃

#include

voidmain()

{

intday,x1,x2;

day=9;

x2=1;

while(day>0)

{

x1=(x2+1)*2;

x2=x1;

day--;

}

printf("total=%d\n",x1);

}

16、九九乘法口诀

#include

voidmain()

{

inti,j;

for(i=1;i<=9;i++)

{

for(j=1;j<=i;j++)

{printf("%2d*%2d=%2d",i,j,i*j);

if(i==j)printf("\n");

}

}

printf("\n");

}

17、求最大公约和最小公倍数

#include

voidmain()

{

intp,r,n,m,temp;

printf("请输入两个正整数:

");

scanf("%d,%d",&n,&m);

if(n

{

temp=n;

n=m;

m=temp;

}

p=n*m;/*两数之积,用于公倍数计算*/

while(m!

=0)

{

r=n%m;

n=m;

m=r;

}

printf("它们的最大公约数为:

%d\n",n);

printf("它们的最小公倍数为:

%d\n",p/n);/*辗转算法*/

}

18、求水仙花数

#include

voidmain()

{

inti,j,k,n;

printf("水仙花数是:

");

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");

}

19、打印钻石图案

#include

voidmain()

{

chardiamond[][5]={{'','','*'},{'','*','','*'},{'*','','','','*'},

{'','*','','*'},{'','','*'}};

inti,j;

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%c",diamond[i][j]);

printf("\n");

}

}

20、冒泡法排序

#include

voidmain()

{

inta[11];

inti,j,t;

printf("input10numbers:

\n");

for(i=1;i<11;i++)

scanf("%d",&a[i]);

printf("\n");

for(j=1;j<=10-1;j++)

for(i=1;i<=10-j;i++)

if(a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf("thesortednumbers:

\n");

for(i=1;i<11;i++)

printf("%4d",a[i]);

printf("\n");

}

21、用数组解决费波那列数列

#include

voidmain()

{

inti;

intf[20]={1,1};

for(i=2;i<20;i++)

f[i]=f[i-2]+f[i-1];

for(i=0;i<20;i++)

{

if(i%5==0)

printf("\n");

printf("%12d",f[i]);

}

printf("\n");

}

22、行列互换

#include

voidmain()

{

inta[2][3]={{1,2,3},{4,5,6}};

intb[3][2],i,j;

printf("arraya:

\n");

for(i=0;i<=1;i++)

{

for(j=0;j<=2;j++)

{

printf("%5d",a[i][j]);

b[j][i]=a[i][j];

}

printf("\n");

}

printf("arrayb:

\n");

for(i=0;i<=2;i++)

{

for(j=0;j<=1;j++)

printf("%5d",b[i][j]);

printf("\n");

}

23、递归求阶乘

#include

floatfac(intn)

{

floatf;

if(n<0)

{

printf("n<0,dataerror!

");

f=-1;

}

else

if(n==0||n==1)f=1;

elsef=fac(n-1)*n;

return(f);

}

voidmain()

{

intn;

floaty;

printf("inputaintegernumber:

");

scanf("%d",&n);

y=fac(n);

printf("%d!

=%15.0f\n",n,y);

}

24、静态变量求阶乘

#include

voidmain()

{

intfac(intn);

inti;

for(i=1;i<=5;i++)

printf("%d!

=%d\n",i,fac(i));

}

intfac(intn)

{

staticintf=1;

f=f*n;

return(f);

}

25、外部变量被屏蔽

#include

inta=3,b=5;

voidmain()

{

intmax(int,int);

inta=8;

printf("%d\n",max(a,b));

}

intmax(inta,intb)

{

intc;

c=a>b?

a:

b;

return(c);

}

26、选择法排序(重要)

#include

voidmain()

{

voidsort(intarray[],intn);

inta[10],i;

printf("enterthearray\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

sort(a,10);

printf("thesortedarray:

\n");

for(i=0;i<10;i++)

printf("%5d",a[i]);

printf("\n");

}

voidsort(intarray[],intn)

{

inti,j,k,t;

for(i=0;i

{

k=i;

for(j=i+1;j

if(array[j]

k=j;

t=array[k];array[k]=array[i];array[i]=t;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2