- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章数组汇
第七章 数组 一维数组的定义及引用 二维数组的定义及引用 字符数组 如 int a[5]={6,2,3}; 等价于: a[0]=6; a[1]=2;a[2]=3; a[3]=0; a[4]=0; 如 int a[3]={6,2,3,5,1}; (?) 程序举例 例7.1 读10个整数存入数组,找出其中最大值和最小值 #include stdio.h #define N 10 main() { int x[N],i,max,min; printf(Enter 10 integers:\n); for(i=0;iN;i++) { printf(%d:,i+1); scanf(%d,x[i]); } max=min=x[0]; for(i=1;iN;i++) { if(maxx[i]) max=x[i]; if(minx[i]) min=x[i]; } printf(Maximum value is %d\n,max); printf(Minimum value is %d\n,min); } 例7.2用数组求Fibonacci数列前20个数 例7.3 用冒泡法对10个数排序 #include stdio.h main() { int a[11],i,j,t; printf(Input 10 numbers:\n); for(i=1;i11;i++) scanf(%d,a[i]); printf(\n); for(j=1;j=9;j++) for(i=1;i=10-j;i++) if(a[i]a[i+1]) {t=a[i]; a[i]=a[i+1]; a[i+1]=t;} printf(The sorted numbers:\n); for(i=1;i11;i++) printf(%d ,a[i]); } 例7.4 用简单选择法对10个数排序 #include stdio.h main() { int a[11],i,j,k,x; printf(Input 10 numbers:\n); for(i=1;i11;i++) scanf(%d,a[i]); printf(\n); for(i=1;i10;i++) { k=i; for(j=i+1;j=10;j++) if(a[j]a[k]) k=j; if(i!=k) { x=a[i]; a[i]=a[k]; a[k]=x;} } printf(The sorted numbers:\n); for(i=1;i11;i++) printf(%d ,a[i]); } 7.2 二维数组 定义方式: 数据类型 数组名[常量表达式1][常量表达式2]; 例 int a[3][4]; float b[2][5]; int a[3,4]; (?) 1.数组元素在内存中的排列顺序为“按行存放”,即先顺序存放第一行的元素,再存放第二 行,以此类推。 2. 设有一个m*n的数组x,则第i行第j列的元素x[i][j]在数组中的位置为:i*n+j(注意:行号、列号均从0开始计数 3.可以把2维数组看作是一种特殊的1维数组:它的元素又是一个1维数组。 例如,对a[3][2],可以把a看作是一个1维数组,它有3个元素:a[0]、a[1]、a[2],每个元素又是一个包含2个元素的1维数组,如图6-4所示。即把a[0]、a[1]、a[2]看作是3个1维数组的名字 引用二维数组元素: 数组名[行下标表达式][列下标表达式] 二维数组应用举例 二维数组应用举例 for(i=0;iM;i++) {for(j=0;jN;j++) { score[i][N] += score[i][j]; score[M][j] += score[i][j]; } score[i][N] /= N; } for(j=0;jN;j++) score[M][j] /= M; clrscr(); printf(学生编号 课程1 课程2 课程3 课程4 个人平均\n); for(i=0;iM;
文档评论(0)