学习目标:
掌握数组的概念
掌握一维数组的定义和引用
掌握一维数组的应用
重点:
数组的概念、定义
数组的遍历方法
求最大值(打擂台算法)
难点:
数组概念的理解
打擂台算法
引言:
C语言数据类型有基本类型、构造类型、指针类型等
基本类型前面章节已介绍过,其中有整型、浮点型、字符型。
构造类型是由基本类型按一定规则组成的类型,其中有数组类型、结构体类型、共用体类型。
一、数组的概念
数组:
1)是一组有序数据的集合,数据的类型相同。
2)这个集合用一个数组名来表示。
3)数组中的每一个的元素序号用一个下标值来表示。
如:名为a的整型数组中有四个整型数组元素,分别是a[0] ,a[1] , a[2] , a[3]。
注意:
a)数组名后使用"方括号";下标从0开始。
b)下标值——可以是常量表达式
c)数组按照维度分为:一维、二维等,维度主要由下标的个数来确定。
如a[10]为一维数组,b[3][4]为二维数组。
二、一维数组
1.定义
格式:类型说明符 数组名[常量表达式]
1)类型说明符:表示数组的类型
int, short , long ,unsigned , float , double , char等
2)数组名:表示各数组元素的统一名字,定义方法与定义变量名相同
3)常量表达式:表示数组的长度
常量表达式:包括常量和符号常量(用#define定义的),但不能包含变量。
C语言不允许数组进行动态定义。
即:int n ;
scarf(“%d”,&n);
nt x[n]; //如此定义数组错误
2.数组元素的初始化
数组在定义的同时可对数组元素进行初始化
格式: int a[10]={0,1,2,3,4,5,6,7,8,9}
说明:
1)赋初值为0,系统会对所有数组元素自动赋以0值。
即: int a[10]={0};
等价于: int a[10]={0,0,0,0,0,0,0,0,0,0};
2)对全部数组元素赋初值,可以不指定数组长度。
即: int a[ ]={0,1,2,3,4,5};
等价于: int a[6]={0,1,2,3,4,5} ;
3)可以部分赋初值,没有赋值的元素值为0
即: int a[5]={1,3};
等价于: int a[5]={1,3,0,0,0}
3.数组元素的引用
1)只能逐个引用数组元素,而不能一次引用整个数组。
即:一个5个元素的数组,引用数组元素为a[0],a[1],a[2],a[3],a[4]
2)C语言不提供数组下标越界的保护,设计时要注意引用越界错误。
即:int a[5]={11,12,13,14,15};
printf(“%d”,a[2]);//输出结果为13
printf(“%d”,a[5]);//如此引用错误,越界
三、一维数组应用举例
1.例7.1:一维数组的遍历输入输出。定义一个数组a[10],分别输入1~10,然后输出。
2.例7.2:随机生成10个两位数存入一个数组中,输出其中的最大值。
讨论题:
1)在例7.1中代码中没有第6行代码,结果会显示什么?如果没有第7行代码,结果会显示什么?
2)在例7.2中代码中两段For循环代码可以合并吗?

