c语言程序设计第7章_数组_2样版.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言程序设计第7章_数组_2样版.ppt

[例子]编写程序,实现一维数组A[10]元素值循环左移3 位(要求用指针实现)。 #include stdio.h #define N 10 int main() { int array[N] = {98,124,58,78,90,587,21,0,-65,106}; int i,t,*p=array; for(i=1;i=3;i++) { t=*array; for(p=array+1;p=array+N-1;p++) *(p-1)=*p; *(p-1)=t; } for(p=array;parray+N;p++) printf(%5d,*p); return 0; } 7.2.3 数组作函数的参数 1. 数组元素作函数的参数 数组元素作函数的参数与普通变量作函数的参数本质相同。数组元素作函数实参时,仅仅是将其代表的值作为实参处理。 数组中元素作为函数的实参,与简单变量作为实参一样,结合的方式是单向的值传递。 【例】数组元素作函数的参数。 #include stdio.h float max(float n,float z) /* 函数有二个形参n,z */ { if(nz) return n; else return z; } void main() { float m,a[]={3.2,180,2.3,35,56,67,68,45,-34,10}; int k; m=a[0]; for(k=1;k10;k++) /*循环9次*/ m=max(m,a[k]); /*调用9次函数,实参m和a[k]给形参n,z*/ printf( %.2f\n,m); /*输出m和值 */ } 特别注意:数组元素只能作为函数的实参,不能作为函数的形参。 2. 数组名作函数参数 数组名代表数组的首地址,在数组名作为函数的参数时,形参和实参都应该是数组名(或是指针)。在函数调用时,实参给形参传递的数据是实参数组的首地址,即实参数组和形参数组完全等同,是存放在同一存储空间的同一个数组,形参数组和实参数组共享存储单元。如果在函数调用过程中形参数组的内容被修改了,实际上也是修改了实参数组的内容。 有四种形式: (1)实参与形参都用数组名。 (2)实参用数组名,形参用指针变量。 (3)实参与形参都用指针变量。 (4)实参用指针变量,形参用数组名。 例:编写一个输出一维数组的函数,在主程序中调用该函数。 形参:void pntarray(int b[],int N) /(int *b,int N) 实参: pntarray(array,N) /(p,N) 其中:array为数组名,p为指向数组array的指针 void output(int b[],int n) { int *ptr; for(ptr=b;ptrb+n;ptr++) printf(%5d,*ptr); printf(\n); } void maopao(int b[],int n) { int i,temp,*px; for(i=0;in-1;i++) for(px=b;pxb+n-1-i;px++) if(*px*(px+1)) {temp=*px; *px=*(px+1);*(px+1)=temp;} } int find(int b[],int n,int x) { int flag=0,bot,top,mid; bot=0;top=n-1; while(bot=top) {mid=(bot+top)/2; if(*(b+mid)==x) {flag=1;break;} else if(x*(b+mid)) bot=mid+1; else top=mid-1; } return flag; } void main() { int array[N]={96,35,12,58,78,90,587,21,0,-65}; int x; output(array,N);//调用output函数输出排序前数组 maopao(array,N);//调用maopao函数对数组排序 output(array,N);//调用output函数输出排序后数组 printf(input data:); scanf(%d,x); //输入要找的数x if(find(array,N,x))//调用find函数查找x在数组中是否存在 printf

您可能关注的文档

文档评论(0)

liuxiaoyu98 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档