- 1、本文档共118页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数组和指针
第七章 数组和指针 数组: 是按一定格式排列起来的一系列具有同一属性的项目。 例如: 向量、矩阵、立体矩阵等。 a11 a12 a13 a21 a22 a23 a31 a32 a33 数组名: 表示群体的共性(具有同一种数据类型) 下标: 表示个体的个性(各自占有独立的单元) 7.1 数组及数组元素7.1.1 一维数组 一维数组的定义方式: 类型说明符 数组名[常量表达式]; 数组名遵循标识符命名规则 常量表达式表示元素的个数,即数组长度。 例如:int a[10]; 数组元素的表示形式:数组名[下标] 其中,下标:是整型常量或整型表达式。对于任何数组,下标都从0开始。 [例7.1]用气泡法完成对10个数从小到大排序。 第一趟扫描找到了最小的数存入a[0],其过程如下: a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] main() { int a[11],i,j,t; printf(“input ten numbers:\n”); for(i=1;i11;i++) scanf(“%d”,a[i]); printf(“\n”); for(i=1;i10;i++) for(j=10;ji;j--) if(a[j-1]a[j]) { t=a[j];a[j]=a[j-1];a[j-1]=t;} printf(“the sorted numbers:\n”); for(i=0;i11;i++) printf(“%d”,a[i]); } 上述程序有许多值得改进的地方。 (1)在9趟由底向上的扫描中,可能最后几趟已无任何交换发生,程序应能做到,一旦发现某趟扫描中无任何交换时就会终止; (2)在每趟扫描中,上趟扫描中最后一次交换的位置k是至关重要的,因为当jk时,将再也没有任何交换发生,从而应该在此结束此趟扫描; (3)为使算法具有对称性,扫描的方向有两种可能的选择,一是使轻气泡上浮,一是使重气泡下沉。 例:用选择法排序。即先将10个数中最小的数与a[0]对换;再将a[1]到a[9]中最小的数与a[1]对换;每比较一轮,找出一个未经排序的数中最小的一个。共应比较9轮。 7.1.2 二维数组 二维数组的一般定义形式为: 类型说明符 数组名[常量表达式][常量表达式]; 例如:float a[3][4]; 二维数组元素的表示形式为: 数组名[下标1][下标2] 下标1:称为行下标/下标2:称为列下标 [例7.2]将4×4的矩阵转置并输出。 main() {float a[4][4],t; int i,j for(i=0;i4;i++) for(j=0;j4;j++) scanf(“%f”,a[i][j]); for(i=1;i4;i++) for(j=0;ji;j++) {t=a[i][j];a[i][j]=a[j][i]; a[j][i]=t;} for(i=0;i4;i++) {for(j=0;j4;j++) printf(“%f”,a[i][j]); printf(“\n”);} } 7.1.3 多维数组 多维数组:多于二维的数组。 多维数组的定义、数组元素的引用:与二维数组类似,只是需要相应维数的下标。 例如: int cube[5][6][4]; /*三维数组*/ float data[3][4][9][2];/*四维数组*/ cube[0][1][3]=20; data[1][0][5][1]=0.0; 7.2 数组的存储表示 1.同一个数组中的所有元素占用一组连续的存储空间; 2.数组的存储分配按行进行; 3.数组名字表示该数组的首元素地址。 对于一维数组而言,各元素按下标次序依次存放, 如a[0],a[1],a[2],…等等。且有: a[0]: a[1]: a[2]: 7.2 数组的存储表示 数组中任一元素a[i]的地址可表示为: a[i]=a+i*sizeof(元素类型) 其中sizeof(元素类型):求每个元素占用存储空间的字节数。例如:char ch[10];int a[10]; 设 ch=FFE0,a=FFEA 则 ch[0]=FFE0+0*1=FFE0 a[0]=FFEA+0*2=FFEA ch[1
您可能关注的文档
- 成分输血的临床应用山东血液中心王爱梅.ppt
- 我们秉承服务大众回馈社会造福人类的宗旨在大批.ppt
- 徐州铜山区新区试验小学王广阔.ppt
- 成都锦江区教育局2010年暑期学校现代教育技术设施设备采.doc
- 承天寺位于今湖北黄冈南.ppt
- 扬州2016年初中毕业升学统一考试.doc
- 把握2005年金融政策的几个关键(2005年3月三亚).ppt
- 招标编号SHZB201383.doc
- 招标编号TJ-201.doc
- 招标采购法律法规与政策讲义毛林繁(中国招标投标协会.ppt
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
最近下载
- 2018-2019学年辽宁省本溪市实验中学八年级(上)第一次月考物理试卷(附答案详解).docx
- 3.大功率激电测深工作方法.pdf
- 权吉浩-《长短的组合》原版五线谱钢琴谱正谱.pdf
- 消毒供应中心管理.pptx
- 2020~2021学年第一学期期末考试九年级历史试卷.pdf VIP
- 埃斯顿pronert伺服驱动器说明书.pdf
- EPC工程总承包项目管理办法.docx
- JTT 1504.1-2024 公路基础设施长期性能科学观测网 第1部分:建设规范.docx
- 在线网课学习课堂《高级医学英语(首都医大 )》单元测试考核答案.pdf
- 2020-2021学年广州市白云区九年级上学期期末数学试卷(含答案解析).docx
文档评论(0)