配色: 字号:
C语言必背的经典程序一
2015-01-27 | 阅:  转:  |  分享 
  
C语言必背经典程序中级系列

1、/通过键盘输入3名学生4门课程的成绩,

分别求每个学生的平均成绩和每门课程的平均成绩。

要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车

其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。/

#include

#include

main()

{floata[4][5],sum1,sum2;

inti,j;

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

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

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

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

{sum1=0;

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

sum1+=a[i][j];

a[i][4]=sum1/4;

}

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

{sum2=0;

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

sum2+=a[i][j];

a[3][j]=sum2/3;

}

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

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

printf("%6.2f",a[i][j]);

printf("\n");

}

}

2、/完善程序,实现将输入的字符串反序输出,

如输入windows输出swodniw。/

#include

main()

{charc[200],c1;

inti,j,k;

printf("Enterastring:");

scanf("%s",c);

k=strlen(c);

for(i=0,j=k-1;i
{c1=c[i];c[i]=c[j];c[j]=c1;}

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

}





指针法:

voidinvert(chars)

{inti,j,k;

chart;

k=strlen(s);

for(i=0,j=k-1;i
{t=(s+i);(s+i)=(s+j);(s+j)=t;}

}

main()

{FILEfp;charstr[200],p,i,j;if((fp=fopen("p9_2.out","w"))==NULL){printf("cannotopenthefile\n");exit(0);}

printf("inputstr:\n");

gets(str);

printf(“\n%s”,str);

fprintf(fp,“%s”,str);

invert(str);

printf(“\n%s”,str);

fprintf(fp,“\n%s”,str);

fclose(fp);

}

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

#include

main()

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

}

4、/编写一个voidsort(intx,intn)实现将x数组中的n个数据从大到小

排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中/

#include

voidsort(intx,intn)

{

inti,j,k,t;

for(i=0;i
{

k=i;

for(j=i+1;j
if(x[j]>x[k])k=j;

if(k!=i)

{

t=x[i];

x[i]=x[k];

x[k]=t;

}

}

}

voidmain()

{FILEfp;

intp,i,a[10];

fp=fopen("p9_1.out","w");

p=a;

printf("Input10numbers:");

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

scanf("%d",p++);

p=a;

sort(p,10);

for(;p
{printf("%d",p);

fprintf(fp,"%d",p);}

system("pause");

fclose(fp);

}

5、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列/

main()

{inta[10]={0,12,17,20,25,28,30};/a[0]为工作单元,从a[1]开始存放数据/

intx,i,j=6;/j为元素个数/

printf("Enteranumber:");

scanf("%d",&x);

a[0]=x;

i=j;/从最后一个单元开始/

while(a[i]>x)

{a[i+1]=a[i];i--;}/将比x大的数往后移动一个位置/

a[++i]=x;

j++;/插入x后元素总个数增加/

for(i=1;i<=j;i++)printf("%8d",a[i]);

printf("\n");

}

6、/编写函数replace(chars,charc1,charc2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中/

#include

replace(chars,charc1,charc2)

{while(s!=''\0'')

{if(s==c1)

s=c2;

s++;

}

}

main()

{FILEfp;

charstr[100],a,b;

if((fp=fopen("p10_2.out","w"))==NULL)

{printf("cannotopenthefile\n");

exit(0);}

printf("Enterastring:\n");

gets(str);

printf("Entera&&b:\n");

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

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

fprintf(fp,"%s\n",str);

replace(str,a,b);

printf("Thenewstringis----%s\n",str);

fprintf(fp,"Thenewstringis----%s\n",str);

fclose(fp);

}































本文由www.weih123.com整理和发布[键入文字]

















献花(0)
+1
(本文系张飞702首藏)