C语言程序设计 c4-1、2-函数.pptVIP

  • 12
  • 0
  • 约1.42万字
  • 约 84页
  • 2017-07-07 发布于浙江
  • 举报
C语言程序设计 (电子教案) 滕永晨 Tyc_Tbf@ 兰州理工大学计通学院 二、通过形参和实参的结合进行传值 1.单向值传递 形参为一般变量,实参将值传给形参 实参 形参 main( ) {void swap(int x, int y); int a,b; scanf(%d%d,a,b); printf(%d %d\n,a,b); swap(a, b); printf(%d %d\n,a,b); } void swap(int x, int y) { int temp; temp=x; x=y; y=temp; } 2 .地址传递(双向传递) 1)用指针方式 实参是地址(指针),形参得到该地址后对其中数据进行操作,主调函数在实参(地址)中即可得到结果。 main( ) {void swap(int *p1,int *p2); int a,b; scanf(%d%d,a,b); printf(%d %d\n,a,b); swap(a,b); printf(%d %d\n,a,b); } void swap(int *p1,int *p2) {int temp; temp=*p1; *p1=*p2; *p2=temp; } 2)用数组方式 选择排序法: 选择排序法的基本思路是在N个数中,找出最小的一个数,使它与X(0)互换,然后,从N-1个数中,找一个最小的数,使它与X(1)互换,依次类推,直至剩下最后一个数据为止。 【例】冒泡排序法 算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。 # include stdio.h main() {int a[5],i,j,t; printf(Please input 5 numbers: ); for(i=0;i5;i++) scanf(%d,a[i]); for(i=0;i4;i++) for(j=0;j4-i;j++) if(a[j]a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } printf(The sorted numbers: ); for(i=0;i5;i++) printf(%d ,a[i]); printf(\n); } 例1: 用递归的方法求n! #includestdio.h double fact(int n); int main(void ) {int n; scanf(%d,n); printf(%f\n,fact(n)); return 0; } double fact(int n) {double result; if(n==1||n==0) result=1; else result=n*fact(n-1); return result; } 例4: 古代金典汉诺塔(Tower of Hanoi)问题 下课了。。。 变量的存储类型与作用域 变量的数据类型 外部变量与静态外部变量实例 例:/* file1.c */ /* file2.c */ #include stdio.h extern a; int a; extern b; static int b=100; main( ) p(n) { int i=4; a=5; int n; print

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档