工控智汇

工控智汇

C语言必背的18个经典程序

admin 170 124

1、/*输出9*9口诀。

共9行9列,i控制行,j控制列。*/include""main()

{intm,i,k,h=0,leap=1;

printf("\n");

for(m=101;m=200;m++)

{k=sqrt(m+1);

for(i=2;i=k;i++)

if(m%i==0)

{leap=0;

break;}

if(leap)/*内循环结束后,leap依然为1,则m是素数*/{printf("%-4d",m);h++;if(h%10==0)printf("\n");}leap=1;}printf("\nThetotalis%d",h);}

4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程。找出1000以内的所有完数。*/

main()

{staticintk[10];

inti,j,n,s;

for(j=2;j1000;j++)

{n=-1;s=j;

for(i=1;iincludeincludemain()

{charc[200],c1;inti,j,k;

printf("Enterastring:");

scanf("%s",c);

k=strlen(c);

for(i=0,j=k-1;imain()

{chars[80],c;intj,k;

printf("\nEnterastring:");

gets(s);

printf("\nEnteracharacter:");

c=getchar();

for(j=k=0;s[j]!='\0';j++)

if(s[j]!=c)s[k++]=s[j];

s[k]='\0';

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

9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/

includevoidsort(int*x,intn)

{inti,j,k,t;

for(i=0;ix[k])

k=j;

if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}}}

voidmain(){FILE*fp;int*p,i,a[10];fp=fopen("p9_1.out","w");

p=a;printf("Input10numbers:");

for(i=0;i10;i++)scanf("%d",p++);

p=a;sort(p,10);for(;px){a[i+1]=a[i];i--;}

/*将比x大的数往后移动一个位置*/a[++i]=x;j++;/*插入x后元素总个数增加*/for(i=1;i=j;i++)printf("%8d",a[i]);printf("\n");}

12、/*编写函数replace(char*s,charc1,charc2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/defineNULL0structstudent{intnum;char*name;intage;structstudent*next;};

voidmain(){structstudenta,b,c,*head,*p;=1001;="lihua";=18;/*对结点成员进行赋值*/=1002;="liuxing";=19;=1003;="huangke";=18;head=a;/*建立链表,a为头结点*/=b;=c;=NULL;p=head;/*输出链表*/do{printf("%5d,%s,%3d\n",p-num,p-name,p-age);p=p-next;}while(p!=NULL);}

16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/includeincludevoidfun(inta[],intn){inti,j,t;for(i=0;i=n-1;i++)for(j=0;ja[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}

main()

{inta[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;FILE*f;

if((f=fopen("","w"))==NULL)printf("!\n");

fun(a,10);

for(i=0;i10;i++)

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

fprintf(f,"%4d",a[i]);}fclose(f);}

18、编写函数countpi,利用公式⋯+×××+××+×++≈94735233112π计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。#includedoublecountpi(doubleeps)/*eps为允许误差*/

{intm=1;

doubletemp=1.0,s=0;

while(temp=eps){s+=temp;temp=temp*m/(2*m+1);m++;}return(2*s);}main(){FILE*fp;

doubleeps=1e-5,pi;if((fp=fopen("p7_3.out","w"))==NULL){printf("cannotopenthefile\n");

exit(0);}pi=countpi(eps);

printf("pi=%lf\n",pi);

fprintf(fp,"pi=%lf\n",pi);

fclose(fp);}