C语言程序设计(第三版)高禹 第6章数组_第1页
C语言程序设计(第三版)高禹 第6章数组_第2页
C语言程序设计(第三版)高禹 第6章数组_第3页
C语言程序设计(第三版)高禹 第6章数组_第4页
C语言程序设计(第三版)高禹 第6章数组_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 6章 数组 第 1页 第 6章 数组 本章概述 本章的学习目标 主要内容 第 6章 数组 第 2页 本章概述 本章主要介绍了一维数组、二维数组、字符数组的定义和使用方法 结合一些典型的程序实例介绍了常用的应用数组的算法 第 6章 数组 第 3页 本章的学习目标 本章教学目的 : 掌握一维数组的定义和使用方法 掌握二维数组的定义和使用方法 掌握字符数组的定义和使用方法 能使用数组编写程序并 掌握常用的算法 本章教学重点 :数组的定义和使用方法 本章教学难点 :使用数组的 常用算法 第 6章 数组 第 4页 主要内容 一维数组 二维数组 字符数组与字符串 本章小结 第 6章 数组 第 5页 维数组 定义一维数组的形式如下: 类型说明符 数组名 常量表达式 ; 例如: a10; 定义了有 10个元素的整型数组 a; 例如: 0, 0; 定义了有 80个元素的实型数组 有 30个元素的实型数组 例如: 0, , 0; 定义了有 60个元素的字符型数组 8个元素的字符型数组 有 10个元素的字符型数组 维数组的定义 第 6章 数组 第 6页 一维数组的几点说明 ( 1)数组名的命名规则与变量名的命名规则相同。 ( 2)常量表达式的值表示数组元素的个数,即数组长度。 例如定义 “ a10; ” 后,表示数组 0,数组 0个元素, 10个数组元素的下标取 0、 1、 2、 3、 4、 5、 6、 7、 8、 9这 10个整数, 即数组 0个元素分别表示为: a0、 a1、 a2、 a3、 a4、 a5、 a6、 a7、 a8、 a9。 ( 3)一个数组的所有元素是同种类型的一组变量。 例如定义“ s5;” 后,相当于定义了一组 s0、 s1、 s2、 s3、 s4中 的每一个都是 ( 4)在同一个函数中,数组名不能与其它变量名相同。 下面是错误的: a; a5; 第 6章 数组 第 7页 ( 6) 方括号中的常量表达式 , 可以包括常量和符号常量 , 但不能是变量名 , 即 例如下面定义是错误的: ) n; “ %d”, &n) ; an; 下面定义是可以的: # N 5 ) aN, b3+N; ( 5)允许在同一个类型说明中定义多个数组和变量, 例如: i, j, k, a6, b8, c9; ( 7)系统为数组元素所分配的内存空间是连续的。 第 6章 数组 第 8页 必须先定义数组,然后才可以引用数组元素。 数组元素的表示形式为: 数组名 下标 下标可以是整型常量或整型表达式,下标取值范围是 0到 “ 数组长度 围内的整数 第 6章 数组 第 9页 例 一维整型数组元素值的总和以及平均值 输入: 10 30 50 70 90 110 # n, , a6; n=0; n # N 10 n, m, ; =16, 35, 48, 29, 56, 43, 93, 64, 90, 48; ) ; %d”, &n); m=0; m # k, , aN; ; /*设置随机数种子为当前时间 */ k=0; ak; k; %d,%dn, ; 函数 是设置随机数种子,每次执行程序时该函数产生不同的整数序列,也就是传递给 一个整数,以便决定 函数从何处开始生成随机数。函数 调用 回一个自 1970年 1月 1日以来经历的秒数。 函数 的值是取值为 0到 32767之间的随机整数。 第 6章 数组 第 14页 例 对从键盘输入的 10个整数,用选择排序法将它们由大到小排序。 第 1次找到 10个数中的最大数,查找的范围是下标为 0到 9范围内的所有数组元素,记住存储这个最大数的数组元素的下标,将该下标对应的数组元素与下标为 0的数组元素的值对换,使下标为 0的数组元素中存储最大数,即下标为 0的数组元素中存储的是:下标为 0到 9范围内的所有数组元素中的最大数。 第 2次找到剩余的 9个数(除去第 1次找到最大数)中的最大数,查找的范围是下标为 1到 9范围内的所有数组元素(除去下标为 0的数组元素),记住存储这个最大数的数组元素的下标,将该下标对应的数组元素与下标为 1的数组元素的值对换,使下标为 1的数组元素中存储这个范围内的最大数,即下标为 1的数组元素中存储的是:下标为 1到 9范围内的所有数组元素中的最大数。 第 6章 数组 第 15页 第 3次找到剩余的 8个数 ( 除去第 1次找到最大数 、 除去第 2次找到最大数 ) 中的最大数 , 查找的范围是下标为 2到 9范围内的所有数组元素 ( 除去下标为 0和 1的数组元素 ) , 记住存储这个最大数的数组元素的下标 , 将该下标对应的数组元素与下标为 2的数组元素的值对换 , 使下标为 2的数组元素中存储这个范围内的最大数 , 即下标为 2的数组元素中存储的是:下标为 2到 9范围内的所有数组元素中的最大数 。 依次类推。 直到第 9次找到剩余的 2个数中的最大数,查找的范围是下标为8和 9对应的两个数组元素,记住存储这个最大数的数组元素的下标,将该下标对应的数组元素与下标为 8的数组元素的值对换,使下标为 8的数组元素中存储这个范围内的最大数,即下标为 8的数组元素中存储的是:下标为 8和 9两个数组元素中的最大数。剩下的一个数放在下标为 9的数组元素中,显然是最小的数。 这种排序方法称为选择排序法。 第 6章 数组 第 16页 例 对从键盘输入的 10个整数,用选择排序法将它们由大到小排序。 # N 10 # ) i, j, m, aN; i=0; iam) m=j; ai; ai=am; am= i=0; i i,k,y; xN= 98,96,87,78,72,64,56,51,43,36; k=0;kxi) /*若 xi,则将 y */ /* 插在下标为 */ k=k=i; xk+1=xk; /*下标大于或等于 * 依次向后移动一个位置 */ xi=y; i+; k=0; 注意 :使用折半查找法,要求数组一定是有序的。 第 6章 数组 第 21页 例 数组 5个数按从小到大的顺序存放,现从键盘输入一个数 a,请使用折半查找法,在数组 # N 15 # a, bN= 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15; %d,&a); ; 1; a23,b23,c23,d23 ,i,j,k=1; i=0;i a23=1, 2, 3, 4, 5, 6; b23=7, 8, 9, 10, 11, 12; i,j,2, 2, c32; i=0;i i, j, aNN; i=1; i #N 100 /*假设输入的字符数小于 100*/ aN; i, k=0; i=0; i a30,b30=0; i,j=0; %s,a); %sn,a); i=0;i i; 2 =; 0=123456; s1, i=0; “ =0成立。 “ 0成立。 若 0=0= 则 s1,# i, j=0; 0, 0 ; a ); a ); %c,& i=0;s1i!=0;i+) s1i!= s2j+=s1i; s2j=0; s1, ; 执行程序: 输出: a 输入: 出: a 输入: A 输出: 语言程序设计 第 6章 数组 第 61页 例 输入 10个字符,用冒泡法将这 10个字符从小到大排序。 冒泡法的编程思路是: 首先进行第 1轮的比较( n=1),找出 a1至 aK范围内最大的字符,存放在 aK中。 然后进行第 2轮的比较( n=2),找出 a1至 a围内最大的字符,存放在 a。 然后进行第 3轮的比较( n=3),找出 a1至 a围内最大的字符,存放在 a。 然后进行第 n=找出 a1至 a3的范围内最大的字符,存放在 a3中。 最后进行第 n=, 找出 a1和 a2中的最大的字符 ,存放在 a2中 。 此时存放在 a1中的自然是最小的字符 。 对于每一轮比较 , 根据取定的 在 a1至 a 1am+1) am; am= am+1; am+1= n=1; n m, n; aK+1; n”); n=1; n # #K 6 m, n; 0 , aK10; n); n=0; am ); am, am+1 ); am+1, n=0; n # # N 6 i,k=0,h; 0, 20; i=0; i); (i)h) h=i); k=i; sn, s, is dn,k,h); ; 第 6章 数组 第 65页 例 输入 出最大的字符串,输出最长的字符串以及它的长度 执行程序若输入: 程序的输出为: he 8 第 6章 数组 第 66页 例 输入一行英文句子(小于 80个字符且全部由英文字符组成),统计其中有多少个单词。要求输入时,两个单词之间用若干个空格隔开。允许输入时在英文句子的前面有空格。 # # ) 0,0; i,j=0,k=0, k= ) k+; /*循环结束时, i=k;i!=0;i+) j+=i; /*将 =0) n); /*若输入的是空句子 ,包含 0个单词 */ ; i=1;i!=0;i+) i= &i+1!= ) ; d n, ; 执行程序时若直接按回车键 (即输入的句子是空的), 则程序的输出为: 行程序若输入: 程序的输出为: 语言程序设计 第 6章 数组 第 67页 例 个学生的学号、姓名、联系电话、住址等信息。根据从键盘输入的学号,查找并输出符合条件的学生的信息。 # #N 6 10, 10, 15, 20, 0; k, p,; k=0; kN; k+) /*输入每个学生的信息 */ k); k); k); ; 输入需要查找的学生的学号 :n ); k=0; kN; k+) k)=0) p=k; ; 1) %s,%s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论