自学C语言第2篇的核心技术:第8章 数组

第2篇 核心技术

本篇介绍了C语言中数组,函数和指针这三大部分内容,并将前面所学的基础内容融入其中,学习更高级的程序设计知识。读者学习完本篇知识,可编写一些简单的C语言应用程序。
自学C语言第2篇的核心技术:第8章 数组_第1张图片

第8章 数组

编写程序过程中,有时会用到大量相同类型的数据。如果每个变量都需要单独定义,编程过程将会变得极其烦琐。使用数组可以很好地解决这个问题。
本章致力于使初学者掌握一维数组和二维数组的应用,能利用所学知识解决一些实际问题;掌握字符数组的使用及其相关操作;并能通过数组掌握常见的排序算法。
本章的知识架构及重难点如下:
自学C语言第2篇的核心技术:第8章 数组_第2张图片

8.1 一维数组

8.1.1 一维数组的定义和引用

1.一维数组的定义

一维数组实际上是一组相同类型数据的线性集合。其定义形式如下:
类型说明符 数组标识符[常量表达式];
1.类型说明符:表示数组中元素的类型。
2.数组标识符:表示该数组型变量的名称,命名规则与变量名一致。
3.常量表达式:定义了数组中存放的数据元素个数,即数组长度。
例如,定义一个包含5个整型元素的数组,代码如下:

int iArray[5];

代码中的int为数组元素的类型,iArray为数组变量名,括号中的5表示数组中包含5个元素。

2.一维数组的引用

数组定义后,可以引用其中的数组元素,引用方式为“数组标识符[下标]"。
例如,引用数组iArray中的第3个变量,格式为iArray[2]。其中,iArray是数组变量名,2为数组下标。有的读者会问:为什么引用第3个数组元素使用的是下标2呢?这是因为数组下标是从0开始的,iArray[0]表示第一个元素,iArray[1]表示第2个数组元素,iArray[2]表示第3个数组元素。

注意:
数组下标可以是整型常量或整型表达式。在数组iArray[5]中,只能使用iArray[0]、iArray[1]、iArray[2]、iArray[3]、iArray[4],而不能使用iArray[5]。若使用iArray[5],则会出现下标越界错误。

【例8.1】使用数组保存手机号 在本实例中,使用数组保存用户输入的手机号,并输出显示。
自学C语言第2篇的核心技术:第8章 数组_第3张图片
(1)定义index作为循环控制变量,定义数组iArray[11]用来保存11位手机号码。
(2)通过一个for循环,依次输入11位手机号码(用空格隔开),存储到各数组元素对应的地址中。这里,iArray[index]就是对数组元素的引用,"&"为取地址符。
(3)循环输出各数组元素,得到完整的手机号码。
运行程序,显示效果如上图所示。

8.1.2 一维数组的初始化

一维数组的初始化,可以用以下3种方法实现。
(1)定义数组时直接对数组元素赋初值(数组元素值放在一对大括号中)。例如:

int i,iArray[6]={1,2,3,4,5,6};

定义和初始化之后,iArray[0]=1,iArray[1]=2,iArray[2]=3,iArray[3]=4,iArray[4]=5,iArray[5]=6。
(2)如果只给一部分数组元素赋值,则未赋值的元素默认为被赋值0。例如:

int iArray[6]={0,1,2};

数组iArray包含6个元素,但初始化时只给出了3个值,结果是数组前3个元素得到赋值,后3个元素被默认赋值为0。
(3)当对全部数组元素都赋初值时,可以不指定数组长度。例如:

int iArray[]={1,2,3,4};

上述代码的大括号中有4个元素,因此系统会默认为该数组变量的长度为4。
【例8.2】计算篮球平均成绩 记分员记录了某球员在10场篮球比赛中的成绩,求该球员的平均成绩。
自学C语言第2篇的核心技术:第8章 数组_第4张图片
程序中首先定义一个数组grade,初始化数值为10场球赛的成绩;定义整型变量total,用来保存总成绩;定义浮点型变量avg,用来保存平均成绩。接着通过一个for循环,控制循环变量使用10场球赛成绩累加,相加结果赋给toal。最后计算平均成绩,赋给avg,并用printf函数输出结果。运行程序,显示效果如上图所示。

8.1.3 一维数组的应用

一个班级中往往有很多学生,使用数组来保存这些学生的姓名、编号等,管理起来非常方便。
【例8.3】输出插队之后的编号 体育课上,老师按身体高矮给20名同学编号。刚编完号,一位男生姗姗来迟,老师比对后将他排在8号位置,并重新排列后面的同学。使用数组,输出男生插队后有变化的学生编号。代码如下:
自学C语言第2篇的核心技术:第8章 数组_第5张图片
自学C语言第2篇的核心技术:第8章 数组_第6张图片
可以看出,要想从第8名同学开始编号,就应该从下标7开始。运行程序,效果如上图所示。
编程训练
训练1:保存语、数、外成绩 编写程序,输入语文、数学、英语3门学科的成绩,使用数组保存并输出。运行效果如下:

请输入语文、数学、英语的成绩:
89  95  96
语文、数学、英语的成绩分别如下:
89  95  96

自学C语言第2篇的核心技术:第8章 数组_第7张图片

训练2:清空购物车 2018年亚运会上,中国女排3:0战胜泰国女排,夺得冠军,当时阿里巴巴承诺要帮女排姑娘们清空购物车。模拟输出某女排姑娘的购物车清单。运行效果如下:

淘宝购物车清单:
========生活用品类:============
纸抽,纸巾,收纳箱,水杯,垃圾袋,剪刀,挂钩,拖鞋,小闹钟
==========化妆品类:============
保湿套装,气垫cc,隔离霜,防晒霜,眉粉,眼影色盘,睫毛䯧
=============运动类商品:==============
运行服,球鞋,护腕,护膝,护掌,排球,瑜伽垫,瑜伽球
===============保健类商品:==================
蛋白粉,口服液,眼部按摩仪,血压计,脚底按摩器

你可能感兴趣的:(c语言,数据结构,算法)