第13课_一维数组举例(新)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
main( ) { int x, aa[1000], n, i ; printf( "enter a number:\n" ) ; scanf("%d", &x) ; fun(x, aa, &n ) ; for( i = 0 ; i < n ; i++ ) printf("%d ", aa[i]) ; printf("\n") ; }
例1:
请编写一个函数fun,它的功能是:求 出1到m之间(含m)能被2整除的所有整 数放在a所指的数组中,通过p返回这 些数的个数。
void fun ( int m, int *a , int *p ) {
} main( ) { int aa[100], n, k; fun ( 4, aa, &n ); for ( k = 0; k < n; k++ ) printf( "%d ", aa[k] ); printf("\n") ; }
例2:
请编写函数fun,函数的功能是查找x在s所指 数组中下标的位置作为函数值返回,若x不存 在,则返回-1。
#define N 11 /* 为11取一个别名为N,以后凡N就代表11*/ int fun( int *s, int x) {
} main() { int a[N]={ 29,13,5,21,10,9,3,18,22,25,14},i,x,index; printf("a数组中的数据 :\n"); for(i=0; i<N; i++) printf("%4d",a[i]); printf("\n"); printf("给x输入待查找的数 : "); scanf("%d",&x); index=fun( a, x ); printf("index=%d\n",index); }
一维数组举例
知识回顾
6、关于数组名
数组名在C语言中是个固定值,代表数组的首地址, 即下标为0的元素的地址。 例:int a[4]={2,-3,7,9}; 则a == &a[0] 1001 1002 1003 1004 1005 1006
7、利用一维数组名作为函数的实参
main() { int a[5]={1,2,3,4,5}; …… fun(a); …. }
例1:求1到4之间能被2整除的数存放到a数组中。 int a[4],i,j=0;
例1:求1到4之间能被2整除的数存放到a数组中。 int a[4],i,j=0; for(i=1 ; i<=4 ; i++) if( i%2==0 ) { a[ j ]=i; j=j+1 ; }
例1:求1到4之间能被2整除的数存放到a数组中。
int a[4],i,j=0; for(i=1 ; i<=4 ; i++) if( i%2==0 ) { a[ j ]=i; j=j+1; }
例1:求1到4之间能被2整除的数存放到a数组中。
int a[4],i,j=0; for(i=1 ; i<=4 ; i++) if( i%2==0 ) a[ j++ ]=i ; for(i=0; i<j ; i++) printf("%d ",a[i]); printf("\n");
void fun ( int x, int pp[ ], int *n ) { int i,j=0;
for(i=1; i <= x; i++) if(x % i== 0 && i % 2==1) pp[ j++ ]=i; *n=j;
} main( ) { int x, aa[1000], n, i ; printf( "enter a number:\n" ) ; scanf("%d", &x) ; fun(x, aa, &n ) ; for( i = 0 ; i < n ; i++ ) printf("%d ", aa[i]) ; printf("\n") ; }
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]
29 13 5 21 10 9 3 18 22 25 14
#define N 11 /* 为11取一个别名为N,以后凡N就代表11*/ int fun( int *s, int x) {
int i; for(i=0 ; i<N ; i++) if( s[i]==x ) return i; return -1;
}
例3:
请编写函数fun,它的功能是:求出能整除形 参x且不是偶数的各整数,并按从小到大的顺序 放在pp所指的数组中,这些除数的个数通过形 参n返回。 例如,若 x 中的值为: 35,则有 4 个数符合要 求,它们是: 1, 5, 7, 35。
void fun ( int x, int pp[ ], int *n ) {
for(i=0;i<5;i++) printf(%d ”,a[i]);
} }
例2:编写函数fun,求a所指数组中正数的个 数,并通过q带回。
main() void fun(iHale Waihona Puke Baidut *a,int *q) { int aa[5]={1,-2,3,-4,5},n ; { fun(aa,&n); printf(“n=%d\n”,n); } }
void fun ( int m, int *a , int *p ) { int i,j=0 ; for(i=1 ; i<=m; i++) if( i % 2 == 0 ) a[ j++ ]=i ; *p=j ; } main( ) { int aa[100], n, k; fun ( 4, aa, &n ); for ( k = 0; k < n; k++ ) printf( "%d ", aa[k] ); printf("\n") ; }
void fun ( int m, int *a , int *n ) { int i,j=0 ; for(i=1 ; i<=m; i++) if( i % 2 == 0 ) a[ j++ ]=i ; *n=j ; } main( ) { int aa[100], n, k; fun ( 4, aa, &n ); for ( k = 0; k < n; k++ ) printf( "%d ", aa[k] ); printf("\n") ; }
fun(int *p) { …. p[i]可认为就是a[i] …. } 或fun(int p[5]) 或 fun(int p[]) { …. p[i]可认为就是a[i] …. }
例1:编写函数fun,用于对a数组各元素加1
main() { int a[5]={1,2,3,4,5}; fun(a); void fun(int *p) {
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]
29 13 5 21 10 9 3 18 22 25 14
#define N 11 /* 为11取一个别名为N,以后凡N就代表11*/ int fun( int *s, int x) {
}