C语言经典编程算法

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言经典编程算法汇集(不断补充)

用pi/4=1-1/3+1/5-1/7+...公式求PI的近似值,直到最后一项的绝对值小有10的-6次方为止。

#include

main()

{int i=-1;

float j,s=0.0;

for(j=1.0;fabs(1.0/j)>=1e-6;j=j+2.0)

{i=-i;

s+=i*1.0/j;}

s=s*4.0;

printf("%f\n",s);

}

输入四个整数,要求按由小到大的顺序输出。

main()

{int a,b,c,d;

printf("请输入4个整数:");

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

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

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(a>d)

{t=a;a=d;d=t;}

if(b>c)

{t=b,b=c;c=t;}

if(b>d)

{t=b;b=d;d=t;}

if(c>d)

{t=c;c=d;d=t;}

printf("排序结果如下:\n");

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

}

译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。例如,可以按以下规律电文变为密码:

将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。字母按上述规律转换,非字母字符不变。如“China!”转换为“Glmre!”。输入一行字符,要求输出其相应的密码。

#include

main()

{char a,b[100];

int i,j=0;

printf("qing shu ru,yi hui che jie shu:");

for(i=0;(b[i]=getchar())!='\n';i++)

{if((b[i]>='a'&&b[i]<='z')||(b[i]>='A'&&b[i]<='Z'))

b[i]+=4;

if(b[i]>'Z'&&b[i]<='Z'+4||b[i]>'z')b[i]=b[i]-26;

}

while(b[j]!='\0')

{printf("%c",b[j]);

j++;}

}

输入两个正整数m和n,求其最大公约数和最小公倍数。

main()

{int p,r,n,m,temp;

printf("请输入两个正整数n,m");

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

}

打印出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如,153是一个“水仙花数”,因为153=1的立方+5的立方+3的立方。

main()

{int i,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");

}

两个乒乓球队进行比赛,各出三人。甲队为A、B、C三人,乙队为X、Y、Z三人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比。请编程序找出三对赛手的名单。

main()

{char i,j,k;

for(i='X';i<='Z';i++)

for(j='X';j<='Z';j++)

if(i!=j)

for(k='X';k<='Z';k++)

if(i!=k&&j!=k)

if(i!='X'&&k!='X'&&k!='Z')

printf("A--%c\tB--%c\tC--%c\n",i,j,k);

}

用起泡法对10个数排序(由小到大)。

main()

{int a[10],t,i,j;

printf("qing shu ru 10 ge shu:\n");

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

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

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

for(j=0;j<9-i;j++)

if(a[j]>=a[j+1])

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

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

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

}

输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

#include

main()

{

char string[81];

int i,num=0,word=0;

char c;

相关文档
最新文档