资源描述:
《c语言函数编程题解答(1)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.写一个函数使给定的一个3*3的二维数组转置。#includevoidturn();main(){inta[3][3]={{1,2,3},{5,6,7},{9,10,11}};inti,j,b[3][3];printf("转置前的矩阵a:");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%5d",a[i][j]);printf("");}turn(a,b);//a,b是两个数组名printf("转置后的矩阵b:");for(i=0;i<
2、3;i++){for(j=0;j<3;j++)printf("%5d",b[i][j]);printf("");}}/*矩阵转置函数*/voidturn(intarra[][3],intarrb[][3]){intr,c;for(r=0;r<3;r++)for(c=0;c<3;c++)arrb[c][r]=arra[r][c];}/*矩阵转置函数*/voidfenli(intarr[],intnum1){inti=4,r;do{r=num1%10;arr[i]=r;i--;}while(num1/=1
3、0);return;}1、请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。S=1+x+x2/2!+x3/3!+…+xn/n!例如,当n=10,x=0.3时,函数值为1.349859。可用系统库函数pow(x,i)(表示求x的i次方)求X的幂。注意:主函数的代码如下,请勿改动主函数main的任何内容。#include#includedoublefun(doublex,intn);voidmain(){intn;doublex;scanf("%d,%lf",&n
4、,&x);printf("函数值为:%f",fun(x,n));}参考答案:doublefun(doublex,intn){inti;doubles=1.0,s1=1.0;for(i=1;i<=n;i++){s1=s1*i;/*各项中的阶乘*/s=s+pow(x,i)/s1;/*按公式求出*/}returns;}2.写一个函数,输入一个5位数,要求输出这5个数字字符,但每两个数字之间空一个空格。如输入11185,输出11185.(本)方法一:#includevoidfenli(int
5、arr[],intn);;main(){inta[5];intnum,i;printf("请输入一个5位数:");scanf("%d",&num);fenli(a,num);printf("分离后的数字是:");for(i=0;i<5;i++)printf("%d",a[i]);printf("分离后的数字是");}方法二:#include#includevoidfenli(charb[]){inti;for(i=0;i<5;i++)//for(i=0;i
6、#includevoidinsert(char[]);voidmain(){charst
7、r[10];printf("输入5位数字的字符串:");scanf("%s",str);insert(str);}参考答案:voidinsert(charstr[]){inti;for(i=strlen(str);i>0;i--){str[2*i]=str[i];str[2*i-1]='';}printf("结果为:%s",str);}补充(本):求一个二维数组中的最小值。用函数实现。#includeintfmin(intarr[3][3]){inti,j,min;min=arr
8、[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++){if(arr[i][j]