c语言程序设计第七单元.pptVIP

  • 4
  • 0
  • 约8.2千字
  • 约 55页
  • 2017-12-26 发布于河北
  • 举报
c语言程序设计第七单元

void SelectSort(int a[ ], int n) { int i,j,k,t; for(i=0;in-1;i++) { k=i; for(j=i+1;jn;j++) { if(a[k]a[j]) k=j; } if(k!=i) { t=a[i]; a[i]=a[k]; a[k]=t;} } } 用数组名作函数参数,应该在主调函数和被调函数分别定义数组,不能只在一方定义; 实参数组与形参数组类型应一致; 形参数组也可以不指定大小,在定义数组时在数组名后面跟一个[ ];为了在被调用函数中处理数组元素的需要,将数组个数作为一个参数; 用数组名作函数实参时,不是把数组的值传递给形参,而是把实参数组的起始地址传递给形参数组,这样两个数组就共占同一段内存单元。 说明: 例:求二维数组中所有元素的最大值。 int getmax( int b[3][4] ) /*或 int getmax(int b[ ][4])*/ { int i, j , max=b[0][0]; for(i=0; i3; i++); { for(j=0; j4; j++) if(max b[i][j]) max=b[i][j]; } return max; } main() { int a[3][4], i, j; printf(“\nEnter 6 integers:); for(i=0;i3;i++) for(j=0;j4;j++) scanf(%d,a[i][j]); printf(“\n Max=%d”, getmax( a ) ); } 函数的嵌套调用 在C语言中,函数调用允许嵌套,所谓函数的嵌套调用 是指在主调函数调用被调函数的过程中,被调函数又 调用了另一被调函数。 a函数 ? main( ) 调用函数a ? 调用函数b ? b函数 ? ? ? ? ? 结束 ? 例:求三个数中最大数和最小数的差值。 int dif(int x,int y,int z) { return max(x,y,z)-min(x,y,z); } main() { int a,b,c,d; scanf(%d%d%d,a,b,c); d=dif(a,b,c); printf(Max-Min=%d\n,d); } int max(int x,int y,int z) { int r; r=xy?x:y; return(rz?r:z); } int min(int x,int y,int z) { int r; r=xy?x:y; return(rz?r:z); } 例:求圆环的面积。 #include math.h #define PI 3.1415926 float area_ring(float x,float y); float area(float r); main() { float r,r1; printf(“input tow figure:\n”); scanf(“%f%f”,r,r1); printf(“area_ring is %f”,area_ring(r,r1)); } float area_ring(float x,float y) { float c; c=fabs(area(x)-area(y)); return(c); } float area(float r) { return(PI*r*r); } 函数的递归调用 在函数的执行过程中又直接或间接调用该函数本身 直接递归调用 在函数中直接调用函数本身 间接递归调用 在函数中调用其它函数,其它函数又调用原函数 int f1(int x) { int y,z; …… z=f2(y); ……. return(2*z); } int f2(int t) { int a,c; …… c=f1(a); ……. return(3

文档评论(0)

1亿VIP精品文档

相关文档