- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章数组讲述
第四章 数组
4.1 一维数组
『实例4.1』:输入50个学生的某门课程的成绩,打印出低于平均分的同学号数与成绩。
分析:在解决这个问题时,虽然可以通过读入一个数就累加一个数的办法来求学生的总分,进而求出平均分。但因为只有读入最后一个学生的分数以后才能求得平均分,且要打印出低于平均分的同学,故必须把50个学生的成绩都保留下来, 然后逐个和平均分比较,把高于平均分的成绩打印出来。如果,用简单变量a1,a2,…,a50存放这些数据,可想而知程序要很长且繁。那么有快捷的方法解决这些数据的存储问题呢?
一、一维数组的定义
类型说明符 数组名[常量表达式];
如: int a[4]; // 表明a数组由4个int型元素组成,分别是a[0]、a[1]、a[2]、a[3] ;
『注释』:数组的下标序号从0开始。类型说明符是指数组元素的类型,如:int、bool、char。
例如:50位学生某门课程的成绩可以定义为:
int student[50];
『注释』数组student有50个元素,a[0]、a[1]、a[2]、a[3]、……a[49]分别存放第1位到第50位学生的成绩。
『关于下标』:必须是从0开始。
『实例4.2』:定义如下数组:
表示20种商品的价格;
表示30件邮件的安全邮递情况;
定义如下:
float price[20];
bool mail [30];
如下数组的定义是错误的:
int n;
int c[n];
『注释』:C++不允许对数组的大小作动态的定义,即数组的大小不能是变量,必须是常量。
如果要根据不同的数值改变数组的大小,可用常量表达式。如:
二、一维数组的引用
一般情况下,我们都用下标来访问数组格式为:数组名[下标]
『说明』:
数组下标不允许超越所定义的下标下界和上界。
数组是一个整体,数组名是一个整体的标识,要对数组进行操作,必须对其元素操作。数组元素可以象同类型的普通变量那样作用。如:a[2]=34;是对数组a中第三个下标变量赋以34的值,cina[4];是从键盘读入一个数到数组a第5个元素中去。
我们现在来完成实例4.1。程序如下:
三、数组的基本操作
数组的的基本操作包括
四、一维数组应用示例
三、数组的基本操作
1、数组的读入
数组的读入分为两种。
第一种对数组中的一部分元素列举初值,未赋值的部分是0.
第二种是程序执行的时候读入。
2、数组的输出
3、数组的插入
例如:数组a中保存了1、2、4、5、7五个元素,现在要在a数组里面第三个位置插入数字8,怎么做呢?
a数组初始状态如下:
1 2 4 5 7
1 2 4 5 7 要想在第三个位置插入数字8,只能从最后面开始,每一位向后移动一位,腾出一个空间放入数字8.
『核心程序如下』:
4、数组的删除
例如:数组a中保存了1、2、4、5、7五个元素,现在要在a数组里面删除第三个元素4,怎么做呢?
1 2 4 5 7
1 2 5 7
如上演示,要删除一个数,只要从这个数开始后面每一位向前移一位覆盖前面的数就可以了。
『代码如下』
5、数组的查找
因为数组是顺序存储,要在数组中查找一个数,只要把数组从头到尾扫描一遍就可以了。
四、数组的应用实例
『实例4.3』 输入10个数,要求程序按输入时的逆序把这10个数打印出来。也就是说,请你按输入相反顺序打印这10个数。分析:我们可定义一个数组a用以存放输入的50个数, 然后将数组a内容逆序输出。源程序如下:#includeiostream
using namespace std;
int main()
{
int a[10];
for(int i=0;i=9;i++)
cina[i];
for(int i=9;i=0;i--)
couta[i] ;
return 0;
}
『实例4.4』求S=x1*y1+x2*y2+x3*y3……x10*y10。其中x1到x10分别为1,3,5,7……17,19
y1到y10的值为21,22,23,……29,30.
分析:此题需要两个数组分别存储xi和yi的值。
源程序如下:
#includeiostream
using namespace std;
int main()
{
int x[11],y[11],s=0;
for(int i=1;i=10;i++)
{
x[i]=2*i-1;
y[i]=20+i;
文档评论(0)