




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计 基础 1 字符数组与字符串 二维数组 1 2 3 一维数组 第 5章 数组 2 3 在实际问题中,我们经常会遇到批量数据的处理问题 。 例如,对 100名学生某门课的考试成绩进行排序或统计求最高分、最低分及平均成绩 。 , 定义 100个 放学生成绩 , 存在的问题: 1、 这样做非常 的不 方便 。 2、 变量 之间相互独立,不能反映出这些数据之间的内在 联系 。 为 解决上述问题, 组 这种数据类型 ,解决 相同类型批量数据 的处理问题。 第 5章 数组 4 一维数组 一维数组的定义 一维数组的引用 一维数组的初始化 一维数组程序举例 5 一维数组的定义 一维数组的 定义: 类型 说明符 数组名 表达式 例如: ; 1 2 3 4 常量 6 一维数组的引用 一维数组的数组元素 引用: 数组 名 下标 例如: ; =1; /*为 的元素 赋值为 1*/ =2; /*越界 */ 下标 可以为整型常量,也可以是整型表达式。例如: /*相当于 */ ; /*相当于 */ *2; /*相当于 */ 7 一维数组的初始化 ( 1)定义数组时对全部数组元素赋初值。例如: =0,1,2,3,4; ( 2)只给一部分元素赋值。例如: =0,1,2,3,4; 等价 于: =0,1,2,3,4,0,0,0; ( 3)对数组的全部元素赋初值时,数组长度可以缺省。例如: =0,1,2,3,4; 等价 于: =0,1,2,3,4; 1 2 3 4 补 0 8 一维数组的初始化 【 说明 】 ( 1)对数组的部分元素赋初值时,这些元素只能是从首元素开始的若干连续 元素 。 = , 1 , 2 ; = 0 , , 2 ; ( 2)如果赋值个数超过数组长度,那么会导致语法错误 。 =0,1,2,3,4; 9 一维数组程序举例 【程序 5求 1,1,2,3,5,8,的前40个数。该数列的特点是: (n=1) (n=2) n3) 【 问题分析 】 建立一个一维数组: f40; f0=f1=1; fi=ff (i=239) f o r i = 2 t o 3 9f i = f i - 2 + f i - 1 f 4 0 = 1 , 1 输 出 前 4 0 个 元 素10 【 程序 5 # f40=1,1; /*数组的前两个元素 f0和 f1的值均为 1*/ i; i=2; 比较 的大小, 比较 的大小, 因此, 0 0 13 【 程序 5 # 5 ,i; 请输入 %n,N); i=0; i; if(ij+1) /*交换相邻两个数 j和 j+1的值 */ j; j=j+1; j+1= 打印输出排序好的 【 思考 】 ( 1)如果某趟排序中不发生数据交换则说明元素顺序已排好,此时可跳出循环、终止排序,这就是改进的冒泡排序算法,试编程实现。 ( 2)如果用冒泡排序法实现对 该怎样改写源程序? 19 二维数组 二维数组的定义 二维数组的引用 二维数组的初始化 二维数组程序举例 20 二维数组的定义 格式: 类型 说明符 数组名 表达式 1表达式 2 例如: 4; 二维数组的定义 a r r a y 0 0 a r r a y 0 1 a r r a y 0 2 a r r a y 0 3 a r r a y 1 0 a r r a y 1 1 a r r a y 1 2 a r r a y 1 3 a r r a y 2 0 a r r a y 2 1 a r r a y 2 2 a r r a y 2 3 第 0 列 第 1 列 第 2 列 第 3 列第 0 行第 1 行第 2 行图 5辑 存储结构 a r r a y 0 0 a r r a y 0 1 a r r a y 0 2 a r r a y 0 3 a r r a y 1 0 a r r a y 1 1 a r r a y 1 2 a r r a y 1 3 a r r a y 2 0 a r r a y 2 1 a r r a y 2 2 a r r a y 2 3 0 x 12 80 x 12 c0 x 12 00 x 12 40 x 12 80 x 12 c0 x 12 00 x 12 40 x 12 80 x 12 c0 x 12 00 x 12 4第 0 行第 0 列第 0 行第 1 列第 0 行第 2 列第 0 行第 3 列第 1 行第 0 列第 1 行第 1 列第 1 行第 2 列第 1 行第 3 列第 2 行第 0 列第 2 行第 1 列第 2 行第 2 列第 2 行第 3 列图 5理 存储结构 21 二维数组的数组元素引用 格式: 数组 名 下标 1下标 2 例如: 4; 2= /*为 行第 2列的元素 赋值 */ 2*3 等价于: 1 4= /*越界 */ 二维数组的引用 下标是整型表达式 22 二维数组的初始化 ( 1)分行给二维数组赋初值 。 3=1,2,3,4,5,6; ( 2)可以将所有数据写在一个大括号内,按数组排列的顺序对各元素赋初值 。 3=1,2,3,4,5,6; ( 3)可以对部分元素赋初值 。 3=1,4; 3=1,0,0,4,0,0; ( 4)如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省 。 3=1,2,3,4,5,6; 3=1,2,3,4,5,6; ( 5)在定义二维数组时,也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。例如: 3=1,2,4; 3=1,2,0,4,0,0; 等价于 等价于 等价于 23 二维数组程序举例 【程序 5将一个二维数组 行列转置),存到另一个二维数组 如: a= 1 2 34 5 6 b= 1 42 53 6a= 1 2 34 5 6 b= 1 42 53 6a00 a01 a02 a10 a11 a12 b00 b01 b10 b11 b20 b21 b00=a00 b10=a01 b20=a02 b01=a10 b11=a11 b21=a12 bji=aij ( i=01 , j=02 ) 24 【 算法设计 】 变量定义和初始化 。 定义 数组 a23,数组 b32,循环控制变量 i和 j。 用 嵌套循环 实现数组 存放到数组 外层循环控制数组 0 1。 内层循环控制数组 0 2。 循环体部分: bji=aij; 打印输出数组 b。 二维数组程序举例 25 【 程序 5 # a23=1,2,3,4,5,6; b32,i,j; a:n); i=0;i # 10 ) N,i,j; i=0;i 36 字符串处理函数 (1) 符数组 1,字符数组 2) 作用 : 把 字符串 2接到字符串 1的后面,把得到的结果放在字符数组 1中,函数调用后得到一个函数值 字符数组 1的地址。 符串连接函数 3= “; = “; %s”, ; H e l l o 0 0W o r l d ! 0 0H e l l o W os t r 1 :s t r 2 :s t r 1 : 0 0 0 0 0 0 0 0 0 0 0r l d ! 字符数组 ”。 原字符串 1后面的 0取消,在新字符串 1的末尾增加一个 0。 37 字符串处理函数 (2) 符数组 1,字符串 2) 作用 : 将 字符串 2复制到字符数组 1中去,函数调用后得到一个函数值 字符数组 1的地址。 = “ = “ %s”, ; a p p y 0d a yd a y 0 ys t r 1 :s t r 2 :s t r 1 : 0 0 0 0符串 赋值 函数 字符 数组 1的长度不应小于字符串 2的长度。 38 不能 用赋值运算符“ =”来实现将一个字符串常量或字符数组直接赋给一个字符数组 。 ,; /*赋值错误 */ /*赋值错误 */ ,; ; 字符串处理函数 39 字符串处理函数 符串 比较 函数 (3) 符串 1,字符串 2) 作用 : 比较 字符串 1和字符串 2, 分 3种情况: 字符串 1字符串 2,函数返回值为 正整数 。 字符串 1=字符串 2,函数返回值等于 0。 字符串 1,=,0) 字符串处理函数 41 字符串 长度 函数 字符串处理函数 (4)符数组 ) 作用 : 测试 字符串的长度(不包括串结束标志 0),函数的返回值是字符串的长度。 0= “ %d”, ; 可以直接测试字符串常量的长度: ; 5 42 程序举例 【 程序 5不使用 程将两个字符串连接在一起 。 【 问题分析 】 已知两个字符串 ( 1)寻找字符串 ( 2)将字符串 ( 3)在字符串 0 。 43 【 程序 5 # 00,00; i=0,j=0; 请输入字符串 n); 请输入字符串 n); i!=0) /*寻找字符串 +; /*将字符串 (j!=0) i=j; i+; j+; i=0; /*在字符串 0*/ 连接后的字符串 n); ; (1) (2) (3) 请 输入字符串 请输入字符串 连接后的字符串4 程序举例 【 程序 5删除一个字符串中指定位置上的字符 。 【 问题分析 】 若 一个字符串 输入带删除的字符序号 m=3,删除后得到的新的字符串 实现该功能的设计的思路如下: ( 1)在一个字符串中找到待删除的指定字符。 ( 2)将指定位置后的字符依次向前移动一个位置。 ( 3)在字符串的末尾添加一个 0 。 45 【 程序 5 # 80 ; m,k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022企业统计年终工作总结
- 慢行系统贯通工程规划设计方案
- 国内大循环战略的实践路径
- 光伏电站光伏区技改项目实施方案(模板)
- 工业园区水环境综合整治项目实施方案
- 2024届浙江省金丽衢十二校高三上学期第一次联考物理卷 含解析
- 上下结构的字教学设计
- 2025年开展《安全生产月》活动实施方案 汇编3份
- 毕业设计选矿厂设计方案答辩
- 西南大学《学前儿童教育活动设计与实施》2023-2024学年第二学期期末试卷
- 新疆公共建筑节能设计标准
- 2024年餐厅服务员(高级)职业鉴定理论考试题库(含答案)
- 金属非金属矿山尾矿库安全生产标准化定级评分标准2023版
- GB/T 10433-2024紧固件电弧螺柱焊用螺柱和瓷环
- 2《归去来兮辞并序》公开课一等奖创新教案统编版高中语文选择性必修下册
- 道路交通设施红绿灯运维投标方案(技术方案)
- 数独题目高级50题(后附答案)
- 不定代词知识点综合讲解及习题专练(附答案)
- 2024届高考英语读后续写微专题 情感描写 教学设计
- 浙江省金华市永康市2024年统编版小升初考试语文试卷(原卷版)
- 管道天然气居间合同范本
评论
0/150
提交评论