- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数组一维、二维数组;课前预习
将手机调到静音
认真做笔记
及时完成作业;了解数组的概念
掌握定义和引用一维数组的方法
掌握定义和引用二维数组的方法;数组
定义和引用一维数组
定义和引用一维数组;6.1 数组的概念;30名学生成绩,需要用30个变量
100名学生成绩,需要用多少个变量?
用s1,s2,s3,……,s30表示成绩,能否体现内在联系?
C语言用方括号中的数字表示下标,如用s[15]表示,s为数组名,15为数组中元素的个数。;数组是一组有序数据的集合。数组中各数据的排列是有一定规律的,下标??表数据在数组中的序号,如s[5]。
用一个数组名和下标唯一确定数组中的元素。
数组中的每一个元素都属于同一个数据类型。
用循环对数组中的元素进行操作,可以有效地处理大批量的数据,大大提高效率。;6.2.1 定义一维数组
6.2.2 引用一维数组的元素
6.2.3 一维数组的初始化
6.2.4 一维数组程序举例;6.2.1 定义一维数组;6.2.1 定义一维数组;6.2.1 定义一维数组;常量表达式中可以包括常量和符号常量,不能包含变量,即数组的大小不依赖于程序运行过程中变量的值。
int n;
scanf(“%d”,n);
int a[n];
;6.2.2 引用一维数组的元素;6.2.2 引用一维数组的元素;注意定义数组与引用数组元素的区别:
形式上:int a[10];定义数组长度为10;
t=a[6];引用a数组中序号为6的元素;
简单的判别方法:如果在数组名[常量]前有类型名(char,int,float,double等),则为定义数组。如果没有类型名,则为引用数组元素。
;例6.1 引用数组元素。利用循环给数组元素a[0]~a[9]赋值为0~9,然后按逆序输出各元素的值。
解题思路:
先用循环给数组元素a[0] ~a[9]赋值0~9,这样,每个数组元素都有固定的值了,然后按a[9]到a[0]的顺序输出各元素的值。;#include stdio.h
void main()
{ int i,a[10];
for(i=0;i=9;i++)
a[i]=i;
for(i=9;i=0; i--)
printf(%d ,a[i]);
printf(\n);
} ;6.2.3 一维数组的初始化;(2) 可以只给一部分元素赋值,未被赋值的根据数组类型自动赋值。
int a[10]={0,1,2,3,4};
int a[10]={0,1,2,3,4,0,0,0,0,0};
;(3)在对全部数组元素赋初值时,如果数据个数确定,则可以在定义数组时不指定数组长度,系统根据数据的数量确定数组的长度。
int a[5]={1,2,3,4,5}; 可写为 int a[ ]={1,2,3,4,5};
注意:如果数组的长度与定义初值的个数不相同,则数组长度不能省略。
如果数组a的长度为10,使用int a[ ]={1,2,3,4,5};数组只赋了5个初值,系统认为数组长度为5。
应该写为a[10] ]={1,2,3,4,5};
;6.2.4 一维数组程序举例;解题思路:
建立一个数组,将数列中第1个数放在数组第1个元素中,数列第2个数放在数组第2个元素中,…
数组序号为i的元素的值是其前两个元素值之和。即:
f[i]= f[i-2]+f[i-1]
用循环来求出数组各元素之和;#include stdio.h
void main()
{ int i;
int f[20]={1,1}; //f[0]和f[1]的值1,1
for(i=2;i20;i++)
f[i]=f[i-2]+f[i-1]; //求f[2]和f[19]的值
for(i=0;i20;i++)
{
if(i%5==0) printf(\n); //每行输出5个
printf(%12d,f[i]);
}
printf(\n);
};例5.8程序在顺序求出并输出各个数后,不能保存这些数据,如果要单独输出第10个数,是比较困难的。
本例用数组处理时,把每个数据都保存在各数组元素中,如果要单独输出第10个数,是很容易的,直接输出f[9]即可。; 例6.3 假如有n个人,各人年龄不同,希望按年龄将他们从小到大排列。
解题思路:
排序的规律有两种:一种是“升序”,从小到大;另一种是“降序”,从大到小
把题目抽象为:“对n个数按升序排序”
采用起泡法排序:先将第1个数和第2个数比较,如果第2个数比第1个数
文档评论(0)