C语言课件
7.5 数组作为函数参数
数组元素作函数实参——值传递
#include <stdio.h> 例 main()两个数组大小比较 Ch7_10.c { int a[10],b[10],i,n=0,m=0,k=0; a b int large(int x,int y) a和b为有10个元素的整型数组 for(i=0;i<10;i++) 0 12 i 43 {0 int flag; 比较两数组对应元素 scanf("%d",&a[i]); 1 23 i 1 if(x>y) flag=1; 23 变量n,m,k记录a[i]>b[i], a[i]==b[i], for(i=0;i<10;i++) else if(x<y) flag=-1; i 2 56 2 21 a[i]<b[i]的个数 scanf("%d",&b[i]); else flag=0; i 3 10 98 3 最后 for(i=0;i<10;i++) 若n>k,认为数组a>b return(flag); i 76 4 66 若n<k,认为数组a<b { if(large(a[i],b[i])==1) n=n+1; }4 88 若n==k,认为数组a==b 5 5 54 else if(large(a[i],b[i])==0)i m=m+1; else k=k+1; n=1 n=1 n=2 n=3 n=0 n=0 n=0 } m=1 m=1 m=1 m=1 m=0 m=0 m=1 k=1 k=2 k=2 k=2 k=0 k=1 k=1 /* Output */ }
C语言课件
数组名作函数参数
地址传递 在主调函数与被调函数分别定义数组,且类型应一致 形参数组大小(多维数组第一维)可不指定 形参数组名是地址变量
C语言课件
形参用数组定义,
例 求学生的平均成绩 #include <stdio.h> float average(int stu[10], int n); void main() { int score[10], i; float av; printf("Input 10 scores:\n"); for( i=0; i<10; i++ ) scanf("%d", &score[i]); av=average(score,10); printf("Average is:%.2f", av); }
实参用数组名 . .
Ch7_100.c Ch7_101.c
int stu[ ]
float average(int stu[10], int n) { int i; float av,total=0; for( i=0; i<n; i++ ) total += stu[i]; av = total/n; return av; } score
0 1 2 12 23 56 …. …. 88
stu
9
C语言课件
例 数组元素与 数组名 作函数参数比较
Ch7_111.c
值传递
#include <stdio.h> void swap2(int x,int y) { int z; z=x; x=y; y=z; } main() { int a[2]={1,2}; swap2(a[0],a[1]); printf("a[0]=%d\na[1]=%d\n",a[0],a[1]); }
1 2 调用 x 1 2 y x 2 1 y 交换 a 1 2 返回
a a[0] a[1]
1 2 调用前
a a[0] a[1]
C语言课件
#include <stdio.h> 例 数组元素与 数组名 void swap2(int x[]) 作函数参数比较 { int z; z=x[0]; x[0]=x[1]; x[1]=z; Ch7_110.c } main() 地址传递 { int a[2]={1,2}; swap2(a); printf("a[0]=%d\na[1]=%d\n",a[0],a[1]); }
a 1 2 调用前 a x 1 2 调用 a x a 2 1 交换 2 1 返回
C语言课件
main() 例 数组排序----简单选择排序 { int a[10],i; for(i=0;i<10;i++) void sort(int array[],int n) scanf("%d",&a[i]); { int i,j,k,t; sort(a,10); for(i=0;i<n-1;i++) for(i=0;i<10;i++) { k=i; printf("%d ",a[i]); for(j=i+1;j<n;j++) printf("\n"); if(array[j]<array[k]) k=j; } if(k!=i) a { t=array[i]; 49 0 9 array array[i]=array[k]; 68 1 57 2 array[k]=t; i=0 32 3 } 9 49 4 } 99 5 }
27 13 76 88 6 7 8 9
Ch7_13.c
k j j j j j j j j j
k k
C语言课件
main() 例 数组排序----简单选择排序 { int a[10],i; for(i=0;i<10;i++) void sort(int array[],int n) scanf("%d",&a[i]); { int i,j,k,t; sort(a,10); for(i=0;i<n-1;i++) for(i=0;i<10;i++) { k=i; printf("%d ",a[i]); for(j=i+1;j<n;j++) printf("\n"); if(array[j]<array[k]) k=j; } if(k!=i) a { t=array[i]; 49 0 9 array array[i]=array[k]; 68 13 1 k 57 2 array[k]=t; j i=1 32 3 } j 9 49 4 j } 99 5 j }
27 13 68 76 88 6 7 8 9
C语言课件
C语言课件
C语言课件
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高等教育C语言 7.5 数组作为函数参数全文阅读和word下载服务。
相关推荐: