内蒙古科技大学:《C语言程序设计》课程教学课件(PPT讲稿)第六章 数组

语言程序设计 第六章数组 计算机教研室 : 围
计算机教研室 C语言程序设计 第六章 数组

本章重点内容 C俯言程序设计 、数组类型的应用场合 二、数组的定义、引用和初始化 三、向函数传递一维数组 四、向函数传递三维数组(选学) 五、字符数组的应用 计算机教研室
计算机教研室 本章重点内容 C语言程序设计 一、数组类型的应用场合 二、数组的定义、引用和初始化 三、向函数传递一维数组 四、向函数传递二维数组(选学) 五、字符数组的应用

一、 数组的应用场合 C培言程序设计 在实际问题中,经常会遇到对大批数据进行 处理的情况,如对一组数据进行排序、求平均值, 在一组数据中查我最大、最小数值,矩阵运算表 格数据处理,图形图像处理等等。 例如,要输入全年级800个学生的成绩,然后 排出名次。处理该问题,需要定义800个不同名 称的简单变量显然是不现实的。类似问题的解决, 就需要使用一种有效的方法,将大批数据能够保 存下来,在C语言中,“数组”就是解决大批类 型相同的数据处理的行之有效的方法。 计算机教研室
计算机教研室 一、数组的应用场合 C语言程序设计 在实际问题中,经常会遇到对大批数据进行 处理的情况,如对一组数据进行排序、求平均值, 在一组数据中查找最大、最小数值,矩阵运算 表 格数据处理,图形图像处理等等。 例如,要输入全年级800个学生的成绩,然后 排出名次。处理该问题,需要定义800个不同名 称的简单变量显然是不现实的。类似问题的解决, 就需要使用一种有效的方法,将大批数据能够保 存下来,在C语言中, “数组”就是解决大批类 型相同的数据处理的行之有效的方法

二、数组的定义、引用和初始化 C俯言程序设计 1、数组的定义 般形式为: 类型 数组名[下标1门[下标2].[下标n] 【功能说明】 【类型】用于声明数组的基类型(Base Type),即数组 元素的类型;【数组名】用于标识该数组;【下标】的 个数表明数组的维数;【下标】值表示相应维的长度。 下标个数为1时,称为一维数组;下标个数为2时,称为 三维数组;依此类推,下标个数为n时,称为n维数组。 例如:short score[100]; 表示定义一个具有100个短整形元素的一维数组。 计算机教研室
计算机教研室 二、数组的定义、引用和初始化 C语言程序设计 1、数组的定义 一般形式为: 类型 数组名[下标1][下标2].[下标n] 【功能说明】 【类型】用于声明数组的基类型(Base Type),即数组 元素的类型;【数组名】用于标识该数组;【下标】的 个数表明数组的维数;【下标】值表示相应维的长度。 下标个数为1时,称为一维数组;下标个数为2时,称为 二维数组;依此类推,下标个数为n时,称为n维数组 。 例如:short score[100] ; 表示定义一个具有100个短整形元素的一维数组

二、 数组的定义 C陪言程序设计 数组定义的【功能说明】 【提示1】定义数组的长度必须使用整形常量或整形常量表达式。 C语言不允许使用变量对数组进行动态定义。 【提示2】c语言中数组的下标都是从0开始的。对于任何数组, 它的第一个元素都是第0号元素(Zeroth Element)。 1例如:short score[100] 第一个数组元素为score[0],第100个数组元素为 score[99]. 【提示3】c语言中数组在内存中是按行存放的,即存完第一行后 存第2行,如何存第3行,.依此类推。 【提示4】在不同编译系统下,int型数组元素所占字节数是不同 的,用sizeof:来就是才是最可靠、可移植性最好的方法。 Sizeof,是一个编译时执行的运算符,所以它不会导致额外的 运行时开销。 计算机教研室
计算机教研室 二、数组的定义 C语言程序设计 数组定义的【功能说明】 【提示1】定义数组的长度必须使用整形常量或整形常量表达式。 C语言不允许使用变量对数组进行动态定义。 【提示2】c语言中数组的下标都是从0开始的。对于任何数组, 它的第一个元素都是第0号元素(Zeroth Element)。 例如:short score[100] ; 第一个数组元素为 score[0],第100个数组元素为 score[99]。 【提示3】c语言中数组在内存中是按行存放的,即存完第一行后 存第2行,如何存第3行,. .依此类推。 【提示4】在不同编译系统下,int型数组元素所占字节数是不同 的,用sizeof来就是才是最可靠、可移植性最好的方法。 Sizeof是一个编译时执行的运算符,所以它不会导致额外的 运行时开销

二、数组的引用 C俯言程序设计 2、数组的引用 数组的引用方式为: 数组名[下标1][下标2].[下标n]; 数组的用【功能说明】 与数组定义时不同,引用数组时的下标既可以是整形常量或 形茶交的登是建吊骚等碧套薨牛→香凳7 种错误的用方式: 例如:score(8) //不能使用圆括 matrix (2,3) I不熊使用圆括号,具不能将 行下标和列下标写在一个括号内 matrix[2,3] 17方標标攀不鞋售 score={1,2,3,4,5} //不能用赋值语句对数组进行 整体赋值 计算机教研室
计算机教研室 二、数组的引用 C语言程序设计 数组的引用【功能说明】 与数组定义时不同,引用数组时的下标既可以是整形常量或 整形表达式,也可以是含有已赋值变量的整形表达式。无论怎 样,每一维的下标值一定是单独用方括号括起来的。下面是几 种错误的引用方式: 例如:score(8) //不能使用圆括 matrix(2,3) //不能使用圆括号,且不能将 行下标和列下标写在一个括号内 matrix[2,3] //方括号正确,但是不能将行下 标和列下标写在一个括号内 score={1,2,3,4,5}; //不能用赋值语句对数组进行 整体赋值 2、数组的引用 数组的引用方式为: 数组名[下标1][下标2].[下标n];

二、数组的引用 C陪言程序设计 数组的用【功能说明】 【提示1】数组元素和普通的基本型变量一样,可以出现在任何合法 的c语言表达式中,也可以作为函数参数使用。 例如:int score[100]; 可以使用score[0], score[2]+score[5], dy(score[8]). 【提示2】c语言规定数组不能整体引用,每次只能引用数组的一个 素:对手任何教组,数组名具有特殊的含义,它代表数组的 首地址,其值在程序中是不能被改变的。 1例如:int score[100]i score是数组名,它是地址,与&score[0]等价。 【提示3】由于编译器并不检查数组元素的下标值是否越界,因此在1 编写程序时必须格处小心,申程序这共煮自巨来确保云素的正 确引,以免函下标越界二遥成相郊存储革元数据的破环。 1例如:int score[100]7 可以使用score[0]至score[99],但score[100]越界, 在程序中不可以使用。 计算机教研室
计算机教研室 二、数组的引用 C语言程序设计 数组的引用【功能说明】 【提示1】数组元素和普通的基本型变量一样,可以出现在任何合法 的c语言表达式中,也可以作为函数参数使用。 例如:int score[100] ; 可以使用 score[0] , score[2] +score[5], dy(score[8] ) 。 【提示2】c语言规定数组不能整体引用,每次只能引用数组的一个 元素。对于任何数组,数组名具有特殊的含义,它代表数组的 首地址,其值在程序中是不能被改变的。 例如:int score[100] ; score是数组名,它是地址,与&score[0]等价 。 【提示3】由于编译器并不检查数组元素的下标值是否越界,因此在 编写程序时必须格外小心,由程序设计者自己来确保元素的正 确引用,以免因下标越界二造成相邻存储单元数据的破坏。 例如:int score[100] ; 可以使用 score [0]至score[99],但score[100]越界 , 在程序中不可以使用

二、数组的初始化 C俯言程序设计 3、数组的初始化【功能说明】 数组定义后,它所古的存储单元中的值是不 确定的。用数组元素之前,必须保证数组元素 己经被赋值。除了从键盘输入或直接使用赋值语 昌 句给数组元素赋值的方法之外,C语言还提供了另 外一种方式,即在数组定义时就给元素赋值,元 素的初始值在“三”号后面用一对花括号括起来的 初始化列表中给出。 常见的初始化形式,例如: (1)int score[10]={1,2,3,4,5,6,7,8,9,10}; score[O]至score[9]的值通过初始化的方法赋以确定的值。 i(2)int score[10]=1,23,4,5); score[0]至score[4]的值通过初始化的方法赋以确定的值, score[5]至score[9]全为0。 1(3)int score[10]={0}; score[0]至score[9]的值通过初始化的方法全部赋值为0。 计算机教研室
计算机教研室 二、数组的初始化 C语言程序设计 3、数组的初始化【功能说明】 数组定义后,它所占的存储单元中的值是不 确定的。引用数组元素之前,必须保证数组元素 已经被赋值。除了从键盘输入或直接使用赋值语 句给数组元素赋值的方法之外,c语言还提供了另 外一种方式,即在数组定义时就给元素赋值,元 素的初始值在“=”号后面用一对花括号括起来的 初始化列表中给出。 常见的初始化形式,例如: (1)int score[10]={1,2,3,4,5,6,7,8,9,10} ; score [0]至score[9]的值通过初始化的方法赋以确定的值。 (2)int score[10]={1,2,3,4,5} ; score [0]至score[4]的值通过初始化的方法赋以确定的值, score [5]至score[9]全为0 。 (3)int score[10]={0} ; score [0]至score[9]的值通过初始化的方法全部赋值为0

二、数组的初始化 C陪言程序设计 常见的初始化形式,例如: (4)inta[3][3]={{1,2,3),{4,5,6},{7,8,9): ia[0][0]至a[2,2]的值通过初始化的方法赋以确定的值。 1123 1456 1789 1(5)inta[3][3]={1,2,3,45,6,7,8,9}: 与(4)等价 a[0][0]至a[2,2]的值通过初始化的方法赋以确定的值。 1(6)inta[3][3]={0};与(7)等价 a[0][0]至a[2,2]的值通过初始化的方法赋以确定的值。 1(7)inta[3][3]={0,0,0,0,0,0,0,0,0};与(4)等价 1a[0][0]至a[2,2]的值通过初始化的方法赋以确定的值。 1(8)inta[3][3]={{1,2},{4,5,{7,8}: a[0][0]至a[2,2]的值通过初始化的方法赋以确定的值。 1120 14 50 1780 计算机教研室
计算机教研室 二、数组的初始化 C语言程序设计 常见的初始化形式,例如: (4)int a[3][3]={ {1,2,3},{4,5,6},{7,8,9} }; a[0][0]至a[2,2]的值通过初始化的方法赋以确定的值。 1 2 3 4 5 6 7 8 9 (5)int a[3][3]={1,2,3,4,5,6,7,8,9}; 与(4)等价 a[0][0]至a[2,2]的值通过初始化的方法赋以确定的值。 (6)int a[3][3]={0}; 与(7)等价 a[0][0]至a[2,2]的值通过初始化的方法赋以确定的值。 (7)int a[3][3]={0,0,0,0,0,0,0,0,0}; 与(4)等价 a[0][0]至a[2,2]的值通过初始化的方法赋以确定的值。 (8)int a[3][3]={ {1,2},{4,5},{7,8} }; a[0][0]至a[2,2]的值通过初始化的方法赋以确定的值。 1 2 0 4 5 0 7 8 0

数组的应用实例 C语言程序设计 例题1:Fibonaccil递推数列问题(兔子生患)。(仁维数组) 问题描述与分析见书上P168页。 1编写程序如下: I #include I #define YEAR 12 I int main(void) intf[YEAR+1]={0,1,2://1月和2月兔子对数分别初始化为1,2,不使用f[0] int month; for(month=3;month<=YEAR;month++)//从3月份开始计算每月总兔子对数 f[month]f[month-1]f[month-2]; for(month=1;month<=YEAR;month++)//打印12个月的总兔子对数 printf("%od\t",f[month]); printf("\nsum=%d小n",f[YEAR])//打印年末时(即12月份)的总兔子对数 return O; 13 计算机教研室
计算机教研室 数组的应用实例 C语言程序设计 例题1:Fibonacci递推数列问题(兔子生崽)。(一维数组) 问题描述与分析见书上P168页。 编写程序如下: #include #define YEAR 12 int main(void) { int f[YEAR+1] = {0,1,2};//1月和2月兔子对数分别初始化为1,2, 不使用f[0] int month; for (month=3; month<=YEAR; month++)//从3月份开始计算每月总兔子对数 { f[month] = f[month-1] + f[month-2]; } for (month=1; month<=YEAR; month++)//打印12个月的总兔子对数 { printf("%d\t", f[month]); } printf("\nsum = %d\n", f[YEAR]); //打印年末时(即12月份)的总兔子对数 return 0; }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 内蒙古科技大学:《C语言程序设计》课程教学课件(PPT讲稿)第九章 文件操作.ppt
- 内蒙古科技大学:《C语言程序设计》课程教学课件(PPT讲稿)第七章 指针.ppt
- 内蒙古科技大学:《C语言程序设计》课程教学课件(PPT讲稿)第八章 结构体与共用体.ppt
- 内蒙古科技大学:《C语言程序设计》课程教学资源(作业习题)选择题.doc
- 内蒙古科技大学:《C语言程序设计》课程教学资源(作业习题)改错题.doc
- 内蒙古科技大学:《C语言程序设计》课程教学资源(作业习题)填空题.doc
- 内蒙古科技大学:《C语言程序设计》课程教学资源(作业习题)编程题.doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第二章 数据类型、运算符及表达式(一).doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第二章 数据类型、运算符及表达式(二).doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第一章 C简介.doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第三章 简单的C程序设计.doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第四章 程序的控制结构(四).doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第四章 程序的控制结构(三).doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第四章 程序的控制结构(二).doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第四章 程序的控制结构(一).doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第六章 数组 6.3.doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第六章 数组 6.3.doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第六章 数组 6.2.doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第五章 函数.doc
- 内蒙古科技大学:《C语言程序设计》课程授课教案(讲义)第七章 指针(一).doc
- 内蒙古科技大学:《C语言程序设计》课程教学课件(PPT讲稿)第二章 数据类型、运算符及表达式.ppt
- 内蒙古科技大学:《C语言程序设计》课程教学课件(PPT讲稿)第三章 简单的C程序设计.ppt
- 内蒙古科技大学:《C语言程序设计》课程教学课件(PPT讲稿)第五章 函数.ppt
- 内蒙古科技大学:《C语言程序设计》课程教学课件(PPT讲稿)第四章 程序的控制结构.ppt
- 内蒙古科技大学:《C语言程序设计》课程教学课件(PPT讲稿)第一章 C语言概述.ppt
- 《过程流体机械》课程教学课件(PPT讲稿)第一章 绪论.ppt
- 《过程流体机械》课程教学课件(PPT讲稿)第四章 泵.ppt
- 《过程流体机械》课程教学课件(PPT讲稿)第二章 往复式压缩机.ppt
- 《过程流体机械》课程教学课件(PPT讲稿)第三章 离心式压缩机.ppt
- 《过程流体机械》课程教学课件(PPT讲稿)第五章 离心机.ppt