C语言课件第07章.ppt
《C语言课件第07章.ppt》由会员分享,可在线阅读,更多相关《C语言课件第07章.ppt(41页珍藏版)》请在三一文库上搜索。
1、为了解决比较复杂的问题,本章介绍C语言提供的一种最简单的构造类型数组。 7.1 1维数组的定义和引用 7.2 2维数组的定义和引用 7.3 字符数组与字符串 Return,第7章 数 组,7.1 1维数组的定义和引用,7.1.1 1维数组的定义 7.1.2 1维数组元素的引用 7.1.3 1维数组元素的初始化 7.1.4 1维数组应用举例,Return,7.1.1 1维数组的定义,案例7.1 从键盘上任意输入10个整数,要求按从小到大的顺序在屏幕上显示出来。 排序的方法有很多,本题采用冒泡法。 冒泡法的基本思想:通过相邻两个数之间的比较和交换,使排序码(数值)较小的数逐渐从底部移向顶部,排序码
2、较大的数逐渐从顶部移向底部。就像水底的气泡一样逐渐向上冒,故而得名。 由AnA1组成的n个数据,进行冒泡排序的过程可以描述为: (1)首先将相邻的An与An-1进行比较,如果An的值小于An-1的值,则交换两者的位置,使较小的上浮,较大的下沉;接着比较An-1与An-2,同样使小的上浮,大的下沉。依此类推,直到比较完A2和A1后,A1为具有最小排序码(数值)的元素,称第一趟排序结束。 (2)然后在AnA2区间内,进行第二趟排序,使剩余元素中排序码最小的元素上浮到A2;重复进行n-1趟后,整个排序过程结束。,/*案例代码文件名:7-1.C*/ /*功能:从键盘上任意输入n个整数,用冒泡法按从小到
3、大地排序,并在屏幕上显示出来。*/ #include “stdio.h“ #define NUM 10 /*定义符号常量(数据个数N)*/ void main() int dataNUM; /*定义1个1维整型数组data*/ int i,j,temp; /*定义循环变量和临时变量*/ clrscr(); /*库函数clrscr():清屏*/ printf(“Please input 10 numbers:n“); for(i=0; iNUM; i+) scanf(“%d“, ,/*冒泡法排序*/ for(i=0; ii; j-) /*内循环:进行每趟比较*/ if(datajdataj-1)
4、 /*如果dataj大于dataj-1,交换两者的位置*/ temp=dataj; dataj=dataj-1; dataj-1=temp; ; /*输出排序后的数据*/ printf(“nthe result of sort:n“); for(i=0; iNUM; i+) printf(“%d “,datai); 程序演示,数组同变量一样,也必须先定义、后使用。1维数组是只有1个下标的数组,定义形式如下: 数据类型 数组名常量表达式, 数组名2常量表达式2;注: 是C语言语法规则所要求,不是本书所约定的可选项的描述符号! (1)“数据类型”是指数组元素的数据类型,数组中的每一个元素都属于同一
5、个数据类型。 (2)数组名,与变量名一样,必须遵循标识符命名规则。数组名中存放的是一个地址常量,它代表整个数组的首地址。同一数组中的所有元素,按其下标的顺序占用一段连续的存储单元。数组元素的下标,是元素相对于数组起始地址的偏移量,所以从0开始顺序编号。 例:int a5;,(3)“常量表达式”必须用方括号括起来,指的是数组的元素个数(又称数组长度),它是一个整型值,其中可以包含常数和符号常量,但不能包含变量。 例:int a5; a数组有5个元素a0,a1,a2,a3,a4无a5 a数组的长度为5. 注意:C语言中不允许动态定义数组。 int b; float ab;,Return,7.1.2
6、 数组元素的引用,引用数组中的任意一个元素的形式: 数组名下标表达式 1 “下标表达式”可以是任何非负整型数据,取值范围是0(元素个数-1)或整形表达式。 例: a0=a1+a2+a2*3 特别强调:在运行C语言程序过程中,系统并不自动检验数组元素的下标是否越界。因此在编写程序时,保证数组下标不越界是十分重要的。 21个数组元素,实质上就是1个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。 3在C语言中,数组作为1个整体,不能参加数据运算,只能对单个的元素进行处理。,7.1.3 1维数组元素的初始化,初始化格式: 数据类型 数组名常量表达式初值表,4. 根据存储类型
7、的不同,数组有静态数组(static)和动态数组(auto)之分;根据定义的位置不同,数组有内部数组(在函数内部定义的数组)和外部数组(在函数外部定义的数组)之分。,7.1.4 1维数组应用举例,案例7.2 已知某课程的平时、实习、测验和期末成绩,求该课程的总评成绩。其中平时、实习、测验和期末分别占10、20、20、50。 /*案例代码文件名:7-2.C*/ /*功能:从键盘上循环输入某课程的平时、实习、测验和期末成绩,按10,20,20,50的比例计算总评成绩,并在屏幕上显示出来。按空格键继续循环,其他键终止循环。*/ #include “stdio.h” void main() int i
8、=1,j; char con_key= ; float score5,ratio4=0.1,0.2,0.2,0.5; /*定义成绩、比例系数数组*/ while(con_key= ),while(con_key= ) clrscr(); printf(“输入第%2d个学生的成绩n“, i+); printf(“平时 实习 测验 期末成绩n“); score4=0; /* score4:存储总评成绩*/ for(j=0; j4; j+) scanf(“%f“, /*getch()函数等待从键盘上输入一个字符*/ 程序演示 Return,7.2 2维数组的定义和引用,7.2.1 2维数组的定义 7
9、.2.2 2维数组元素的引用 7.2.3 2维数组元素的初始化,Return,案例7.3 给一个23的2维数组各元素赋值,并输出全部元素的值。 /*案例代码文件名:7-3.C*/ /*功能:从键盘上给23数组赋值,并在屏幕上显示出来。*/ #define Row 2 #define Col 3 #include “stdio.h“ void main() int i, j, arrayRowCol; /*定义1个2行3列的2维数组array*/ for(i=0; iRow; i+) /*外循环:控制2维数组的行*/ for(j=0; jCol; j+) /*内循环:控制2维数组的列*/ pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 07
链接地址:https://www.31doc.com/p-3479847.html