1、C语言实验报告实验一:11.输入4个整数,要求按由小到大的顺序输出,采用冒泡法。#includeint main()int i,j,a4,t; for(i=0;i4;i+) scanf(%d,&ai); for(j=1;j4;j+) for(i=0;iai+1) t=ai+1;ai+1=ai;ai=t; for(i=0;i4;i+) printf(%5d,ai); 运行结果:实验二:输入4个整数,要求按由小到大的顺序输出。采用函数调用。#includevoid sort(int array,int n);int a4,i;printf(enter array:n);for(i=0;i4;i+)
2、scanf(%d,&ai);sort(a,4);printf(The sorted array:n);for(i=0;i4;i+)printf(%d,ai);printf(n);return 0;void sort(int array,int n)int i,j,t;for(j=0;jn-1;j+)for(i=0;iarrayi+1)t=arrayi;arrayi=arrayi+1;arrayi+1=t;运行结果:实验三:输入两个正整数m和n,求其最大公约数和最小公倍数。#includeint main() int p,r,n,m,temp;printf(请输入两个正整数n,m:);scanf
3、(%d,%d,&n,&m);if(nm) temp=n; n=m; m=temp;p=n*m;while(m!=0) r=n%m; n=m; m=r;printf(它们的最大公约数为:%dn,n);printf(它们的最小公倍数为:%dn,p/n);return 0;运算结果:实验四写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用者两个函数,并输出结果。maxyueshu(m,n) int m,n; int i=1,t; for(;i=m&i=n) j=m; else j=n; for(;!(j%m=0&j%n=0);j+); return j; main() int a,b,
4、max,min; printf(enter two number is: ); scanf(%d,%d,&a,&b); max=maxyueshu(a,b); min=minbeishu(a,b); printf(max=%d,min=%dn,max,min); 运行结果: 实验五:3用函数实现m*n的整型矩阵对角线元素之和,并用函数调用,用地址传递。#includeint main()int i=0,j=0,a33,s1,s2; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); s1=a00+a11+a22; s2=a02+a11+a20; prin
5、tf(s1=%d,s2=%dn,s1,s2); 运行结果: 实验六:13.编一个程序,将两个字符串连接起来,不要用strcat函数。#includeint main()void concatenate(char string1,char string2,char string);char s1100,s2100,s100;printf(input string1:);scanf(%s,s1);printf(input string2:);scanf(%s,s2);concatenate(s1,s2,s);printf(nThe new string is %sn,s);return 0;voi
6、d concatenate(char string1,char string2,char string)int i,j;for (i=0;string1i!=0;i+)stringi=string1i;for(j=0;string2j!=0;j+)stringi+j=string2j;stringi+j=0;运行结果:实验七:求方程a*x*x+b*x+c=0的根,用3个函数分别求当:b*b-4*a*c大于0、等于0、和小于0时的根并输出结果。从主函数输入a,b,c的值。#include#includefloat x1,x2,disc,p,q;int main()void greater_tha
7、n_zero(float,float);void equal_to_zero(float,float);void smaller_than_zero(float,float);float a,b,c;printf(input a,b,c:);scanf(%f,%f,%f,&a,&b,&c);printf(equation:%5.2f*x*x+%5.2f*x+%5.2f=0n,a,b,c);disc=b*b-4*a*c;printf(root:n);if(disc0)greater_than_zero(a,b);printf(x1=%fttx2=%fn,x1,x2);else if(disc=0
8、)equal_to_zero(a,b);printf(x1=%fttx2=%fn,x1,x2);elsesmaller_than_zero(a,b);printf(x1=%f+%fitx2=%f-%fin,p,q,p,q);void greater_than_zero(float a,float b)x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);void equal_to_zero(float a,float b)x1=x2=(-b)/(2*a);void smaller_than_zero(float a,float b)p=-b/(2*a)
9、;q=sqrt(-disc)/(2*a);运行结果:实验八:14.输入10个学生5门课的成绩,分别用函数实现下列功能:计算每个学生的平均分;计算每门课的平均分;找出所有50个分数中最高的分数所对应的学生和课程;计算平均分方差:#include#define N 10#define M 5float scoreNM;float a_stuN,a_courM;int r,c;int main()int i,j;float h;float s_var(void);float highest();void input_stu(void);void aver_stu(void);void aver_co
10、ur(void);input_stu();aver_stu();aver_cour();printf(n NO. cour1 cour2 cour3 cour4 cour5 avern);for(i=0;iN;i+)printf(n NO %2d,i+1);for(j=0;jM;j+)printf(%8.2f,scoreij);printf(%8.2fn,a_stui);printf(nawerage:);for(j=0;jM;j+)printf(%8.2f,a_courj);printf(n);h=highest();printf(highest:%7.2f NO.%2d course %2
11、dn,h,r,c);printf(variance %8.2fn,s_var();return 0;void input_stu(void)int i,j;for(i=0;iN;i+)printf(ninput score of student%2d:n,i+1);for(j=0;jM;j+)scanf(%f,&scoreij);void aver_stu(void)int i,j;float s;for(i=0;iN;i+)for(j=0,s=0;jM;j+)s+=scoreij;a_stui=s/5;void aver_cour(void)int i,j;float s;for(j=0;j
12、M;j+)s=0;for(i=0;iN;i+)s+=scoreij;a_courj=s/(float)N;float highest()float high;int i,j;high=score00;for(i=0;iN;i+)for(j=0;jhigh)high=scoreij;r=i+1;c=j+1;return(high);float s_var(void)int i;float sumx,sumxn;sumx=0.0;sumxn=0.0;for(i=0;iN;i+)sumx+=a_stui*a_stui;sumxn+=a_stui;return(sumx/N-(sumxn/N)*(su
13、mxn/N);运行结果:以上是输入10个学生的5门课的成绩,下面是输出结果:实验九:15 写几个函数:输入10个职工的姓名和职工号;按职工号由小到大顺序排序,姓名顺序也随之调整;#include #include #define N 10int main()void input(int,char name8);void sort(int,char name8);int numN,number,flag=1,c;char nameN8;input(num,name);sort(num,name);while (flag=1)printf(ninput number to look for:);s
14、canf(%d,&number);printf(continue to not(Y/N)?);getchar();c=getchar();if(c=N|c=n)flag=0;return 0;void input(int num,char nameN8)int i;for (i=0;iN;i+)printf(input NO.:);scanf(%d,&numi);printf(input name:);getchar();gets(namei);void sort(int num,char nameN8)int i,j,min,templ;char temp28;for (i=0;iN-1;i
15、+)min=i;for (j=i;jnumj) min=j;templ=numi;strcpy(temp2,namei);numi=nummin;strcpy (namei,namemin);nummin=templ;strcpy(namemin,temp2);printf(n result:n);for (i=0;iN;i+)printf(n %5d%10s,numi,namei);运行结果:实验十:16.写一个函数,输入一个十六进制数,输出相应的十进制数。#include#define MAX 1000main()int htoi(char s);int c,i,flag,flag1;ch
16、ar tMAX;i=0;flag=0;flag1=1;printf(input a HEX number:);while(c=getchar()!=0&i=0&c=a&c=A&c=0&si=a&si=A&si=F)n=n*16+si-A+10;return(n);运行结果:实验十一:3.输入10个整数,将其中最小的数与第1个数对换,把最大数与最后一个数对换。写成三个函数;输入10个数;进行处理;输出10个数。f(x,n) int x,n; int *p0,*p1,i,j,t,y; i=j=x0;p0=p1=x; for(y=0;yi) i=xy;p0=&xy; else if(xyj) j=x
17、y;p1=&xy; t=*p0;*p0=xn-1;xn-1=t; t=*p1;*p1=x0;x0=t; return; main() int a10,u,*r; for(u=0;u10;u+) scanf(%d,&au); f(a,10); for(u=0,r=a;u10;u+,r+) printf( %d,au); printf(n); 运行结果: 实验十二:16、写一个函数,输入一个十六进制数,输出相应的十进制数。#include #define MAX 1000int main()int htoi(char s); int c,i,flag,flag1;char tMAX;i=0;fla
18、g=0;flag1=1;printf(input a HEX number ;);while(c=getchar()!=0& i=0& c=a& c=A& c=0& si=a& si=A& si=F)n=n*16+si-A+10;return(n);运行结果:实验十三:6.写出一函数,求一字符串的长度.在main函数中输入字符串,并输出其长度。#includeint main ()int length(char * p);int len;char str20;printf(input string; );scanf(%s,str);len=length(str);printf(The leng
19、th of string is %d.n,len);return 0;int length(char * p)int n;n=0;while(*p!=0)n+;p+;return(n);运行结果;实验十四:8.输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少。#includeint main()int upper=0,lower=0,digit=0,space=0,other=0,i=0;char *p,s20;printf(input string:);while( si=getchar()!=n) i+;p=&s0;while(*p!=n)if(A=*p)&(*p=Z)+upper;else if(a=*p)&(*p=z)+lower;else if(*p= )+space;else if(*p=0)+digit;else+other;p+;printf(upper case: %d lower case:%d ,upper,lower);printf( space:%d digit:%d other;%dn ,space,digit,other);return 0;运行结果:
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2