




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8.1、写两个函数、写两个函数,分别求两个整数的最大公约数和最小公倍数分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数用主函数调用这两个函数,并输出结果并输出结果,两个整数由键盘输入。两个整数由键盘输入。 int lcm(int m,int n) return m*n/gcd(m,n); int gcd(int m, int n) int t,r; if (nm) t=m; m=n; n=t; while (r=m%n)!=0) m=n; n=r; return(n); main() int m,n,h,l;scanf(“%d,%d”,&m,&n);h=gcd(m,n);prin
2、tf(“H.C.F=%dn”,h);l=lcm(m,n);printf(“L.C.D=%dn”,l);8.2 求方程求方程ax2+bx+c=0的根的根,用用3个函数分别求当个函数分别求当b2-4ac大于大于0、等于、等于0和小于和小于0时的根并输出结果。从主函数输入时的根并输出结果。从主函数输入a、b、c的值。的值。#includefloat x1,x2,disc,p,q; /*全局变量全局变量*/ greater_than_zero(float a, float b) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a);equal_to_zero
3、(float a,float b) x1=x2=(-b)/(2*a);smaller_than_zero(float a,float b) p=-b/(2*a); q=sqrt(-disc)/(2*a); main() float a,b,c;printf(“n Input a,b,c:”);scanf(“%f%f%f”,&a,&b,&c);printf(“n 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(
4、“x1=%5.2ftx2=%5.2fnn”,x1,x2);else if(disc=0) equal_to_zero(a,b); printf(“x1=%5.2ftx2=%5.2fnn”,x1,x2);else smaller_than_zero(a,b); printf(“x1=%5.2f+%5.2fi tx2=%5.2f-%5.2fi n”,p,q,p,q);8.3 写一个判素数的函数写一个判素数的函数,在主函数输入一个整数在主函数输入一个整数,输出是否输出是否素数的信息。素数的信息。#includemain()int prime(int); int n;printf(“n input a
5、n integer:”);if (prime(n) printf(“n %d is a prime.”,n);else printf(“n %d is not a prime.”,n);int prime(int n) int flag=1,i; for (i=2;in/2&flag=1;i+) if (n%i=0) flag=0; /*flag为零标志为合数,为为零标志为合数,为1为素数为素数*/ return(flag);8.4 写一函数写一函数,使给定的一个二维数组使给定的一个二维数组(33)转置转置,即行列互换。即行列互换。#define N 3void convert(int arr
6、ayNN) int i,j,t; for(i=0;iN;i+) for(j=i+1;jN;j+) t=arrayij; arrayij=arrayji; arrayji=t; main() int i,j; int arrayNN;printf(“nInput array:n”);for(i=0;iN;i+) for(j=0;jN;j+) scanf(“%d”,&arrayij);printf(“n original array:n”);for(i=0;iN;i+) for(j=0;jN;j+) printf(“%5d”,arrayij); printf(“n”);convert(array)
7、; printf(“nconvert array:n”);for (i=0;iN;i+) for (j=0;jN;j+) printf(“%5d”,arrayij); printf(“n”); 8.5 写一函数写一函数,使输入的一个字符串按反序存放使输入的一个字符串按反序存放,在主函数中输在主函数中输入和输出字符串。入和输出字符串。#includemain()void inverse(char str );char str81;printf(“ninput string:”);scanf(“%s”,str);inverse(str);printf(“nInverse string:%sn”,s
8、tr);void inverse(char str )char t;in i,j; j=strlen(str);for(i=0;istrlen(str)/2;i+,j-)t=stri;stri=strj-1;strj-1=t;8.6 写一函数写一函数,将两个字符串连接。将两个字符串连接。concat(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; /*
9、不要写成不要写成 stringi+j+1=0;*/main( )char s140,s240,s80;printf(“ninput string1:”);gets(s1);printf(“input string2:”); gets(s2);concat(s1,s2,s);printf(“The new string is %sn”,s);8.7 写一函数,使输入的一个字符串中的元音字母复制到另一写一函数,使输入的一个字符串中的元音字母复制到另一个字符串,然后输出。个字符串,然后输出。main( )void cpy(char s ,char c ); /*函数声明函数声明*/char sty8
10、0,c80;printf(“n input string:”);gets(sty);cpy(sty,c);printf(“n the vowel letters are:%s”,c);void cpy(char s ,char c )int i,j;for(i=0,j=0;si!=0;i+) if(si=a|si=A |si=e |si=E |si=i | si=I |si=o |si=O | si=u | si=U ) cj=si; j+;cj=0;8.8 写一函数写一函数,输入一个输入一个4位数位数,要求输出这要求输出这4个数字字符个数字字符,但每但每两个数字间空一个空格。如输入两个数字间
11、空一个空格。如输入1990,应输出应输出“1 9 9 0”。void convert(int n,char b9);main( )int n; char a9;printf(“n input four digits:”); scanf(“%d”,&n);convert(n,a);printf(“noutput:n”);puts(a);void convert(int n,char b9)int a4,i; a0=n/1000; a1=(n-a0*1000)/100;a2=(n-a0*1000-a1*100)/10;a3=n%10;for (i=0;i=a&stri=A& stri=0& str
12、i=length) length=len;place=point; len=0; else if(word=0) word=1;point=i;len+; elselen+;return(place);main( )int i;char string100,c;printf(input one string:n);gets(string);printf(nthe string is:n);puts(string);printf(nthe longest word is:);i=longest(string);for(c=stringi; c!= ;i+) printf(%c,c); c=str
13、ingi+1; printf(n);8.11 写一函数写一函数,用用“起泡法起泡法”对输入的对输入的10个字符按由小到大个字符按由小到大顺序排列。顺序排列。#define N 10main()void sort(char str ,int n); int i; char strN; printf(“n input chars:n”); gets(str); sort(str,N); printf(“string sorted:n”); for (i=0;iN;i+) printf(“%c”,stri);void sort(char str ,int n) int i,j; char t; fo
14、r (j=0;jn-1;j+) for (i=0; (istri+1) t=stri; stri= stri+1; stri+1=t; 8.12 用牛顿迭代法求根。方程为用牛顿迭代法求根。方程为ax3+bx2+cx+d=0,系数系数a、b、c,d的的值依次为值依次为1,2,3,4,由主函数输入。求,由主函数输入。求x在在1附近的一个实根。求出根附近的一个实根。求出根后由主函数输出。后由主函数输出。 #includefloat solute(float a,float b,float c,float d)float x=1,xo,f,f1;doxo=x; f=(a*x0+b)*x0+c)*x0+
15、d; f1=(3*a*x0+2*b)*x0+c; x=x0-f/f1;while(fabs(x-x0)=1e-3);return(x);main()float a, b,c,d;prinf(“n input a,b,c,d:”);scanf(“%f,%f,%f”,&a,&b,&c,&d);printf(“Equation is:%5.fx3+%5.2fx2+%5.fx+%5.2f=0”, a,b,c,d);printf(“nx=%10.7fn”,solute(a,b,c,d);8.13 用递归方法求用递归方法求n阶勒让德多项式的值。阶勒让德多项式的值。1 n=0 x n=1(2n-1)x-pn
16、-1(x)-(x-1)*pn-2(x)/x n1 pn(x) =#includevoid main( )float p(int n, float x); int n;float x; printf(Input n&x):n); scanf(%f%d,&n,&x); printf(The result is:%fn,p(n,x);float p(int n,float x) float y; if(n=0) y=1.0; else if(n=1) y=x; else y=(2*n-1)*x-p(x,(n-1)-(n-1)*p(x,(n-2)/n; return y;8.14 输入输入10个学生个
17、学生5门课的成绩门课的成绩,分别用函数求分别用函数求:每个学生平均分每个学生平均分;每门每门课的平均分课的平均分;找出最高的分数所对应的学生和课程找出最高的分数所对应的学生和课程;求平均分方求平均分方差差:=xi2/n-(xi/n)2,xi为某一学生的平均分。为某一学生的平均分。#define N 10#define M 5float scoreNM;float a_stuN, a_courM; main() float s_var(void); float higtest(); void input_stu(void); void aver_stu(void); void aver_core
18、(void); int i,j; float h; input_stu(); aver_stu (); aver_cour();a_stuna_stun:每个学生平均分:每个学生平均分; ; a_courM a_courM 每门课的平均分每门课的平均分int r,c; int r,c; 两个全局变量,分别代表最高分所在的行、列号两个全局变量,分别代表最高分所在的行、列号printf(“n NO. cour1 cour2 cour3 cour4 cour5 aver”);for(i=0;iN;i+)printf(“n NO.%2d”,i+1); for(j=0;jM;j+) printf(“%8
19、.2f”,scoreij); /*输出每个学生各门课的成绩输出每个学生各门课的成绩*/printf(“%8.2f”,a_stui);/*每个学生的平均成绩每个学生的平均成绩*/printf(“n average:”);for(j=0;jM;j+) printf(“%8.2f”,a_courj); /*输出每门功课的平均成绩输出每门功课的平均成绩*/h=highest( );printf(“n highest:%7.2f NO.%2d course%2dn”,h,r,c);printf(“n variance:%8.2f”,s_var( ) );void input_stu(void)/*给全程
20、变量学生成绩数组给全程变量学生成绩数组score各元素输入初值各元素输入初值*/int i,j;for(i=0;iN;i+)printf(“n input score of student%2d:n”,i+1);for (j=0;jM;j+) scanf(“%f”,&scoreij);void aver_stu(void)/* 计算每个学生的平均分并将结果赋给全局变量数组计算每个学生的平均分并将结果赋给全局变量数组a_stu中各元素中各元素*/int i,j;float s;for(i=0;iN;i+)for(j=0,s=0;jM;j+)s+=scoreij;a_stui=s/M;void a
21、ver_cour(void)/*计算每门功课的平均成绩并将结果赋给全局变量数组计算每门功课的平均成绩并将结果赋给全局变量数组a_cour中各元素中各元素*/int i,j;float s;for(j=0;jM;j+)s=0;for(i=0;iN;i+)s+=scoreij;a_courj=s/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)/*求平均分的
22、方差求平均分的方差*/int i,j;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)*(sumxn/N);8.15 写几个函数写几个函数:输入输入10个职工的姓名和职工号个职工的姓名和职工号:按职工号由小到大按职工号由小到大顺序排序顺序排序,姓名顺序也随之调整姓名顺序也随之调整;要求输入一个职工号要求输入一个职工号,用折半查找法找出用折半查找法找出该职工的姓名该职工的姓名,从主函数输入要查找的职工号从主函数输入要查找的职工号,
23、输出该职工姓名。输出该职工姓名。#include#define N 10void input(int num,char nameN8);void sort(int num,char nameN8);void search(int n,int num,char nameN8);main()int numN,number,c,n;char nameN8;input(num,name);sort(num,name);printf(“ninput number to look for:”);scanf(“%d”,&number);search(number,num,name);void input(i
24、nt num ,char nameN8)int i;for(i=0;iN;i+) printf(“n input No.:”); scanf(“%d”,&numi); printf(“input name:”) getchar(); gets(namei); void sort(int numN,char nameN8)int ,i,j ,k,temp1;char temp28;for(i=0;iN-1;i+)k=i;for(j=i;jnumj) k=j;temp1=numi; strcpy(temp2,namei);numi=numk;strcpy(namei,namek);numk=tem
25、p1;strcpy(namek,temp2);printf(“n result:n”);for(i=0;iN;i+)printf(“n%5d%10s”,numi,namei);void search(int n,int num,char nameN8)int top,bott,mid,loca,sign=1;loca=0;top=N-1;bott=0;if(nnumN-1) loca=-1;while(sign=1)&(botttop)mid=(bott+top)/2;if(n=nummid)loca=mid;printf(“NO.%d,his name is %s.n”,n,nameloca);sign=-1; else if (nnummid) top=mid-1; else bott=mid+1;if(sign=1|loca=-1)printf(“Can not
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设施维护合同履约金协议
- 羽绒制品企业质量管理与质量保证体系考核试卷
- 糖批发企业市场预测与决策支持考核试卷
- 电力设备的智能运维与维修考核试卷
- 房屋坍塌安全避险与自救指南
- 环境监测与生态红线管理考核试卷
- 弹射玩具行业生产调度与制造执行系统考核试卷
- 电机制造工艺装备升级方案考核试卷
- 空调器自动清洁技术考核试卷
- 阳光自信心理安全教育
- 南京师范大学自主招生个人陈述范文与撰写要点
- 铁粉运输合同协议
- 计算机网络安全知识试题及答案2025年计算机二级考试
- 广州广州市天河区华阳小学-毕业在即家校共话未来-六下期中家长会【课件】
- 第4单元 亮火虫(教学设计)-2024-2025学年粤教花城版(2024)音乐一年级下册
- 车间生产材料管理制度
- 公司事故隐患内部报告奖励制度
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 美国数学竞赛AMC8讲座课件
- 2020年国家义务教育质量测查德育科目模块一模拟试题含参考答案
- 导管固定-PPT课件
评论
0/150
提交评论