《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第3讲 数组

弗原創IT教育中心 第3讲数组 为了解决比较复杂的问题,本章介绍C语言提供的 种最简单的构造类型—一数组。 3.11维数组的定义和引用 3.22维数组的定义和引用 3.3字符数组与字符串
为了解决比较复杂的问题,本章介绍 C语言提供的 一种最简单的构造类型──数组。 3.1 1维数组的定义和引用 3.2 2维数组的定义和引用 3.3 字符数组与字符串 第 3 讲 数 组

弗原創IT教育中心 3.11维数组的定义和引用 3.1.11维数组的定义 3.121维数组元素的引用 3.131维数组元素的初始化 3.141维数组应用举例
3.1 1 3.1 1维数组的定义和引用 维数组的定义和引用 3.1.1 1 3.1.1 1维数组的定义 3.1.2 1 3.1.2 1维数组元素的引用 维数组元素的引用 3.1.3 1 3.1.3 1维数组元素的初始化 维数组元素的初始化 3.1.4 1维数组应用举例 维数组应用举例

弗原創IT教育中心 31.11维数组的定义 [案例3.11从键盘上任意输入10个整数,要求 按从小到大的顺序在屏幕上显示出来。 (1)首先将相邻的A[m与A[n-1进行比较,如 果A[叫的值小于A[n1的值,则交换两者的位 置,使较小的上浮,较大的下沉;接着比较A[n-1 与A[m-2],同样使小的上浮,大的下沉。依此类 推,直到比较完A2和A[后,A[为具有最小排 序码(数值)的元素,称第一趟排序结束。 (2)然后在A叫A2区间内,进行第二趟排 序,使剩余元素中排序码最小的元素上浮到 A[2];重复进行n-1趟后,整个排序过程结束
3.1.1 1 3.1.1 1维数组的定义 [案例3.1] 从键盘上任意输入 从键盘上任意输入10个整数,要求 按从小到大的顺序在屏幕上显示出来。 按从小到大的顺序在屏幕上显示出来。 ( 1)首先将相邻的 )首先将相邻的A[n] 与A[n -1]进行比较,如 果A[n]的值小于A[n -1]的值,则交换两者的位 的值,则交换两者的位 置,使较小的上浮,较大的下沉;接着比较 置,使较小的上浮,较大的下沉;接着比较A[n -1] 与A[n -2],同样使小的上浮,大的下沉。依此类 同样使小的上浮,大的下沉。依此类 推,直到比较完 推,直到比较完A[2] 和A[1]后,A[1]为具有最小排 序码(数值)的元素,称第一趟排序结束。 序码(数值)的元素,称第一趟排序结束。 ( 2)然后在A[n]~A[2] A[n]~A[2]区间内,进行第二趟排 区间内,进行第二趟排 序,使剩余元素中排序码最小的元素上浮到 序,使剩余元素中排序码最小的元素上浮到 A[2];重复进行 n - 1趟后,整个排序过程结束。 趟后,整个排序过程结束

弗原創IT教育中心 /*案例代码文件名:*/ /*功能:从键盘上任意输入n个整数,用冒泡法 按从小到大地排序,并在屏幕上显示出来。* include stdio. h" #define num 10 /*定义符号常量* maino { int data NUM;/*定义1个维数组dat*/ int 1,],temp; corsarO printf( Please input 10 numbers: \n") for(i=0; i<NUM; 1++) scanf(%/od,&data li;
/*案例代码文件名: 案例代码文件名:*/ /*功能:从键盘上任 功能:从键盘上任意输入n个整数,用冒泡法 个整数,用冒泡法 按从小到大地排序,并在屏幕上显示出来。 按从小到大地排序,并在屏幕上显示出来。*/ #include " #include "stdio.h stdio.h" #define NUM 10 #define NUM 10 /*定义符号常量*/ main() { int data[NUM]; data[NUM]; /*定义1个1维数组data*/ int i,j,temp; i,j,temp; clrscr(); printf("Please printf("Please input 10 numbers: input 10 numbers:\n"); for(i=0; i<NUM; i++) for(i=0; i<NUM; i++) scanf("%d scanf("%d", &data[i]); ", &data[i]);

弗原創IT教育中心 /*冒泡法排序* for(i=0; Ij)/*内循环:进行每趟比较 if(data l]sdatalj-1 temp=data11 datal]=data j-1] datali-1=temp; /*输出排序后的数据* printf( \nthe result of sort: \n) for(i=0; i<NUM; 1++) printf(%/od",datai) 程序运行(8)
/*冒泡法排序*/ for(i=0; ii; j 1; j>i; j--) /*内循环:进行每趟比较 内循环:进行每趟比较 */ if(data[j]<data[j if(data[j]<data[j-1]) {temp=data[j]; {temp=data[j]; data[j]=data[j data[j]=data[j-1]; data[j-1]=temp; 1]=temp; } /*输出排序后的数据 输出排序后的数据*/ printf(" printf("\nthe result of sort: result of sort:\n"); for(i=0; i<NUM; i++) for(i=0; i<NUM; i++) printf("%d printf("%d ",data[i]); } 程序运行(8)

弗原創IT教育中心 数组同变量一样,也必须先定义、后使用。 1维数组是只有1个下标的数组,定义形式如下: 数据类型数组名常量表达式[数组名2常量表 达式2]… (1)“数据类型”是指数组元素的数据类型。 (2)数组名,与变量名一样,必须遵循标识符 命名规则。 (3)“常量表达式”必须用方括号括起来,指的 是数组的元素个数(又称数组长度),它是一个整 型值,其中可以包含常数和符号常量,但不能包含 变量
数组同变量一样,也必须先定义、后使用。 数组同变量一样,也必须先定义、后使用。 1维数组是只有 1个下标的数组,定义形式如下: ,定义形式如下: 数据类型 数组名 [常量表达式][, 数组名2[常量表 达式2]…… ]; ( 1 ) “数据类型 ”是指数组元素的数据类型。 是指数组元素的数据类型。 ( 2)数组名,与变量名 )数组名,与变量名一样,必须遵循标识符 一样,必须遵循标识符 命名规则。 ( 3 ) “常量表达式 ”必须用方括号括起来,指的 必须用方括号括起来,指的 是数组的元素个数(又称数组长度),它是一个整 是数组的元素个数(又称数组长度),它是一个整 型值,其中可以包含常数和符号常量,但不能包含 型值,其中可以包含常数和符号常量,但不能包含 变量

弗原創IT教育中心 待别说明:在数组定义时,“常量表达式”外 的方括号;以及元素引用时,“下标表达式”外的 方括号,都是C语言语法规则所要求的,不是本 书所约定的可选项的描述符号! (4)数组元素的下标,是元素相对于数组起 始地址的偏移量,所以从0开始顺序编号。 (5)数组名中存放的是一个地址常量,它代 表整个数组的首地址。同一数组中的所有元素, 按其下标的顺序占用一段连续的存储单元
特别说明:在数组定义时, :在数组定义时,“常量表达式”外 的方括号;以及元素引用时, 的方括号;以及元素引用时,“下标表达式”外的 方括号,都是C语言语法规则所要求的,不是本 语言语法规则所要求的,不是本 书所约定的可选项的描述符号! 书所约定的可选项的描述符号! (4)数组元素的下标,是元素相对于数组 )数组元素的下标,是元素相对于数组起 始地址的偏移量,所以从 始地址的偏移量,所以从0开始顺序编号。 开始顺序编号。 (5)数组名中存放的是一个地址常量,它 )数组名中存放的是一个地址常量,它代 表整个数组的首地址。同一数组中的所有元素, 表整个数组的首地址。同一数组中的所有元素, 按其下标的顺序占用一段连续的存储单元。 按其下标的顺序占用一段连续的存储单元

弗原創IT教育中心 3.12数组元素的引用 引用数组中的任意一个元素的形式: 数组名[下标表达式 “下标表达式”可以是任何非负整型数据, 取值范围是0~(元素个数-1)。 特别强调:在运行C语言程序过程中,系统 并不自动检验数组元素的下标是否越界。因此在 编写程序时,保证数组下标不越界是十分重要的。 2.1个数组元素,实质上就是1个变量,它具 有和相同类型单个变量一样的属性,可以对它进 行赋值和参与各种运算
3.1.2 数组元素的引用 数组元素的引用 引用数组中的任意一个元素的形式: 引用数组中的任意一个元素的形式: 数组名[下标表达式] 1.“下标表达式”可以是任何非负整型数据, 可以是任何非负整型数据, 取值范围是0~(元素个数-1)。 特别强调:在运行C语言程序过程中,系统 语言程序过程中,系统 并不自动检验数组元素的下标是否越界。因此在 并不自动检验数组元素的下标是否越界。因此在 编写程序时,保证数组下标不 编写程序时,保证数组下标不越界是十分重要的 越界是十分重要的。 2.1个数组元素,实质上就是 个数组元素,实质上就是1个变量,它具 有和相同类型单个变量一样的属性,可以对它进 有和相同类型单个变量一样的属性,可以对它进 行赋值和参与各种运算。 行赋值和参与各种运算

弗原創IT教育中心 3131维数组元素的初始化 初始化格式: 数据类型数组名{常量表达式={初值表} (1)如果对数组的全部元素赋以初值,定义 时可以不指定数组长度(系统根据初值个数自动 确定)。如果被定义数组的长度,与初值个数不 同,则数组长度不能省略。 (2)“初值表”中的初值个数,可以少于元素 个数,即允许只给部分元素赋初值。 (3)根据存储类型的不同,数组有静态数组 ( static)和动态数组(auto)之分;根据定义的 位置不同,数组有内部数组(在函数内部定义的 数组)和外部数组(在函数外部定义的数组)之 分
3.1.3 1 3.1.3 1维数组元素的初始化 维数组元素的初始化 初始化格式: 数据类型 数组名 [常量表达式 ] = {初值表 } ( 1)如果对数组的全部元素赋以初值,定义 )如果对数组的全部元素赋以初值,定义 时可以不指定数组长度(系统根据初值个数自动 时可以不指定数组长度(系统根据初值个数自动 确定)。如果被定义数组的长度,与初值个数不 确定)。如果被定义数组的长度,与初值个数不 同,则数组长度不能省略。 同,则数组长度不能省略。 ( 2 ) “初值表 ”中的初值个数,可以少于元素 中的初值个数,可以少于元素 个数,即允许只给部分元素赋初值。 个数,即允许只给部分元素赋初值。 ( 3)根据存储类型的不同,数组有静态数组 据存储类型的不同,数组有静态数组 (static )和动态数组(auto )之分;根据定义的 之分;根据定义的 位置不同,数组有内部数组(在函数内部定义的 位置不同,数组有内部数组(在函数内部定义的 数组)和外部数组(在函数外部定义的数组)之 数组)和外部数组(在函数外部定义的数组)之 分

弗原創IT教育中心 3141维数组应用举例 [案例32]已知某课程的平时、实习、测验和 期末成绩,求该课程的总评成绩。其中平时、实 习、测验和期末分别占10%、20%、20%、50% /*案例代码文件名:米/ /*功能:从键盘上循环输入某课程的平时、实习 测验和期末成绩,按10%,20%,20%,50%的 比例计算总评成绩,并在屏幕上显示出来。按空 格键继续循环,其他键终止循环。*/ include“ stdio.h maino R int i=lj; char con key=X20 float score[5], ratio[4]={0.1,0.2,0.20.5}
3.1.4 1 3.1.4 1维数组应用举例 维数组应用举例 [案例3.2] 已知某课程的平时、实习、测验和 已知某课程的平时、实习、测验和 期末成绩,求该课程的总评成绩。其中平时、实 期末成绩,求该课程的总评成绩。其中平时、实 习、测验和期末分别占 习、测验和期末分别占10%、20%、20%、50%。 /*案例代码文件名: 案例代码文件名: * / /*功能:从键盘上循环输入某课程的平时、实习、 功能:从键盘上循环输入某课程的平时、实习、 测验和期末成绩,按 测验和期末成绩,按10%,20%,20%,50%的 比例计算总评成绩,并在屏幕上显示出来。按空 比例计算总评成绩,并在屏幕上显示出来。按空 格键继续循环,其他键终止循环。 格键继续循环,其他键终止循环。 * / #include #include “stdio.h stdio.h ” main() { int i=1,j; char con_key= char con_key=‘\x20’; float score[5],ratio[4]={0.1,0.2,0.2,0.5}; float score[5],ratio[4]={0.1,0.2,0.2,0.5};
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第2讲 函数.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第1讲 单片机概述.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第19讲 单片机系统抗干扰设计、电源的设计.pdf
- DSP集成开发环境(CCS).ppt
- 比高公司:《HD7279A 串行接口8位LED数码管及64键键盘智能控制芯片》学习资料(第四版).pdf
- 江西师范大学通信系:《光纤通信技术与应用》讲义PPT课件(叶志清).ppt
- 清华大学电机系FACTS研究所:《可编程序控制器(PLC)实验讲座》总结及考核(于庆广).ppt
- 清华大学电机系FACTS研究所:《可编程序控制器(PLC)实验讲座》第五讲 EM-II型PLC介绍(于庆广).ppt
- 清华大学电机系FACTS研究所:《可编程序控制器(PLC)实验讲座》实验一 验机和基本指令练习(于庆广).ppt
- 清华大学电机系FACTS研究所:《可编程序控制器(PLC)实验讲座》第三讲 日立(HITACHI)(PLC)分类(于庆广).ppt
- 清华大学电机系FACTS研究所:《可编程序控制器(PLC)实验讲座》第二讲 典型继电器控制线路(于庆广).ppt
- 清华大学电机系FACTS研究所:《可编程序控制器(PLC)实验讲座》第一讲 PLC的定义(于庆广).ppt
- 中国移动通信:《移动智能网原理》讲义(PPT课件).ppt
- 浙江大学:《通信原理》课程教学资源(PPT课件讲稿)第七章 模拟信号的数字传输.ppt
- 浙江大学:《通信原理》课程教学资源(PPT课件讲稿)第六章 正弦载波数字调制.ppt
- 浙江大学:《通信原理》课程教学资源(PPT课件讲稿)第六章 恒包络调制.ppt
- 浙江大学:《通信原理》课程教学资源(PPT课件讲稿)第五章 数字基带传输系统.ppt
- 浙江大学:《通信原理》课程教学资源(PPT课件讲稿)第四章 模拟通信系统.ppt
- 浙江大学:《通信原理》课程教学资源(PPT课件讲稿)第三章 信道.ppt
- 浙江大学:《通信原理》课程教学资源(PPT课件讲稿)第二章 随机信号分析.ppt
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第4讲 指针.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第5讲 结构.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第6讲 单片机内部结构和工作原理.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第7讲 80C51系列单片机指令系统 系列单片机指令系统.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第8讲 中断系统.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第9讲 汇编语言程序设计.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第10讲 80C51定时/计数器.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第11讲 串行通信.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第12讲 单片机系统扩展.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第13讲 IIC总线编程技术.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第14讲 实时时钟芯片DS12887 DS12887应用.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第15讲 A/D转换接口技术.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第16讲 D/A转换器接口.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第17讲 单片机与键盘接口.pdf
- 《C语言及其单片机系统开发单片机系统开发》培训课件(PPT讲稿,教师版,武汉原创)第18讲 点阵式LCD显示设计.pdf
- 清华大学:《模拟电子技术基础》课程教学资源(第三版,习题)第一章 半导体基础知识自测题(童诗白、华成英).doc
- 清华大学:《模拟电子技术基础》课程教学资源(第三版,习题)第七章 信号的运算和处理自测题(童诗白、华成英).doc
- 清华大学:《模拟电子技术基础》课程教学资源(第三版,习题)第三章 多级放大电路自测题(童诗白、华成英).doc
- 清华大学:《模拟电子技术基础》课程教学资源(第三版,习题)第九章 功率放大电路自测题(童诗白、华成英).doc
- 清华大学:《模拟电子技术基础》课程教学资源(第三版,习题)第二章 基本放大电路自测题(童诗白、华成英).doc