C语言内涵教程周二强著第6章节数组.pptVIP

  • 2
  • 0
  • 约8.55千字
  • 约 73页
  • 2018-01-21 发布于广东
  • 举报
C语言内涵教程 周二强 zeq126@126.com 中国铁道出版社 ISBN9787113163815 第6章 数组 6.1 一维数组 6.2 多维数组 6.3 字符型数组和字符串 6.4 综合示例:求大数的阶乘 一个功能为输入5个学生的英语成绩,输出平均成绩的程序。 如果有100个学生,程序会? 解决这个问题可以用数组类型。 6.1.1 一维数组定义 数组并非一组数,而是一组变量,定义一个数组,就是定义了一组变量,并且这组变量类型相同。属于数组的变量也称为数组元素。 定义一维数组的方式为: 类型 数组名[整型常量表达式]; 类型用来指明数组元素的类型,如int、char等。 数组名用来标识这组变量,是一个标识符。 整型常量表达式的值确定数组含有多少个变量,即数组元素的个数,也称数组的长度。 如何理解语句int a[3];? 定义了一个整型数组,数组名为a,它有3个数组元素,即定义了三个整型变量。 与数组相关的数组元素(变量)以“数组名[下标]”的方式命名,如数组a的3个数组元素分别是 a[0]、a[1]和a[2],它们为int型变量。 注意:数组元素的下标是从0开始的。 特别提示: 定义数组时,数组的长度必须是整型常量表达式的值。如有int n = 3; ,则用int a[n];定义数组的方式是错误的。 使用数组元素时,如果有int n = 3; ,则可以用a[n]的形式!前提是? 数组a有数组元素a[3] 例6-1 把用户输入的三个整数存储在数组中,并输出其中的最大数。 设用户的输入分别存储在整型数组a的a[0]、a[1]和a[2]三个元素中。 先比较a[0]和a[1]的大小,如果a[0]a[1],再比较a[0]与a[2]的大小并输出其中的较大者;否则,……。 例6-1 把用户输入的三个整数存储在数组中,并输出其中的最大数。 变量max赋值为a[0],这意味着? 先假设a[0]是a[0]和a[1]中的较大者。接着,如果,……。最后输出max即可。 例6-2 连续输出用户输入的十个整数,并输出其中的最大数。 用户的输入应存储在变量中,可以单独定义a、b、c、d……十个变量来存储数据吗? 可以定义有十个元素的整型数组a来存储数据,虽然同样为十个变量,但变量名为a[0],a[1],a[2]……它们依据下标构成了有序的一组。以输入为例, scanf(%d, a[0]); scanf(%d, a[1]);……。这个过程是重复,可用循环结构 for(i=0; i10; ++i) scanf(%d, a[i]); 模拟。 讨论:数组有何作用? 数组不仅解决了定义多个变量的麻烦,而且通过数组定义的多个变量依据下标构成了有序的一组,便于用循环对大批量的数据进行统一的处理。 由于数组由多个变量构成,数组类型在C语言中又称为构造数据类型,而整型、浮点型和字符型则称为基本数据类型。 6.1.2 一维数组初始化 什么是初始化?数组初始化的特点? 数组初始化的基本形式为: 类型 数组名[整型常量表达式] = {value0,value1,. . . }; 各数组元素的初值从a[0]的开始按照从小到大的下标次序由左向右依次放在一对花括号中,中间用逗号分隔。 数组初始化 语句int a[3] = {1, 2, 3};? char letter[3] = {A, B};? float f[ ] = {3.3, 2.2, 1.1};? 整型数组b有三个元素,当把数组b的数组元素都初始化为1时, int b[3]={1,1,1};而语句int b[3]={1};? 语句int b[3]={0}; 例6-3 数组a中是20个学生的数学成绩(五分制且没有不及格的),请统计成绩为优(5) 、良(4)、中(3)和差(2)的学生的人数。 定义四个变量保存优、良、中、差的学生的人数,利用循环逐个判断从a[0]到a[19]这20个成绩的级别。 在循环体中,如果a[i]等于5,则表示优的人数的变量加1,如果a[i]等于4,则表示良的人数的变量加1,……。处理过程显然是“相等关系”的多分支选择结构,可以采用switch结构。 如果用整型变量y、l、z和c表示优、良、中、差的人数,则循环体中的代码块为 6.1.3 一维数组应用 例6-4 一维数组元素的倒置。如数组元素的值分别为1,2,3,倒置后则变为3,2,1。 如果数组a有n个元素,则倒置时可以让a[0]与a[n-1]互换值,a[1]与a[n-2]互换值……,这个过程是循环。互换多少次呢? n为奇数如7时互换3次,n为偶数如6时互换3次,而c语言中7/2 和6/2 的值都是3,可见不管n为何值,均互换n/2 次。 在第i次循环中,a[i]与哪个元素互换值呢? a[0]与a[n-

文档评论(0)

1亿VIP精品文档

相关文档