设计我10其他源代码_第1页
设计我10其他源代码_第2页
设计我10其他源代码_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、4.1 一维数组4.2 二维数组4.3 字符数组第四章 构造数据类型4.1 数 组4.1.1 一维数组的引出及使用一、一维数组的引出例:某班有40名学生,求该班成绩的平均分#include void main( ) int j , s, sum=0 ; float ave ; for(j=1; j=40 ; j+) scanf(“%d”, &s); sum=sum+s; ave=sum/40; printf(“ave=%f”, ave);这里只使用了一个变量s,虽然通过循环我们输入了40个学生的成绩,但循环结束后s中只是第40个学生的成绩,前面39个学生的成绩都没有保存下来如果要求保存这40名

2、学生的成绩,最后再输出,应该怎么办?因为现在要保存每个学生的成绩,那就不能只使用一个变量s了,而需要40个变量,这样一来输入、输出、计算都会变得繁琐。 在这种情况下,我们希望能有一种数据类型可以保存一组数据,并且可以方便的对这组数据进行输入、输出、计算等操作,因此引出了数组类型。说明一个含有40个元素的数组,每个数组元素存放一个成绩,成绩的输入、输出、计算都可以通过循环来实现例4-1: 求某班成绩的平均分,并输出所有学生的成绩#include void main( ) int j , sum=0 , s40 ; float ave ; for(j=0; j=39 ; j+) scanf(“%d

3、”, &sj); sum=sum+sj; ave=sum/40; printf(“ave=%f”, ave); for(j=0; j40 ; j+) printf(“%d,”, sj); 4.1.1 一维数组的引出及使用二、数组的概念1. 数组:由具有相同类型的固定数量的元素组成的集合2. 数组元素: 每一个数组元素都是一个变量, 为了与 一般的变量相区别,我们称数组元素为下标变量3.下标变量在数组中的位置序号称下标 下标变量的数据类型称为下标类型(或元素类型)4.1.1 一维数组的引出及使用三、一维数组的定义 1. 格式 : 类型标识符 数组名 常量表达式 ; 例: int a10 ; 2.

4、 说明 (1) 数组的类型实际上是指数组元素的 取值类型。对于同一个数组,所有 元素的数据类型都是相同的。 84 : 66 80 95101010121014 :1028a0a1a2 :a9(2) 数组名是用户定义的标识符, 数组名表示了一个存储区的首地址 (即第一个数组元素的地址) 例: 一个变量x的地址可以用&x来表示 一个数组a的地址就用数组名a来表示, a等价于&a04.1.1 一维数组的引出及使用2. 说明(3) 数组长度 : 指数组中元素的个数(4) 数组元素的下标由零开始 例: int a10 中 a 有10个元素, 所以数组长度为10, 数组元素分别是: a0 , a1 a8,

5、 a9(5) 常量表达式中不能包含变量, 其值也不能是实数int n;scanf(%d,&n);int an; int n=6;int an; int b8.5; #define SIZE 8int a2+3;float bSIZE;对错4.1.1 一维数组的引出及使用四、数组元素的引用1. 引用形式 : 数组名 下标 注意: 如果出现 a5 = 72 ; 编译时不会指出错误, 系统会将a4后下一个存储单元 赋值为32, 但这样可能会破坏数组以外其他变量的值 84 75 66 80 9510101012101410161018a0a1a2a3a472a51020假设这个存储空间是变量x的, 实

6、际上a5是不存在的, 如果执行了a5=72, 会将x原有的正确数据覆盖掉2. 说明(1) 下标可以是整型常量或整型表达式 如: a1 , a2*3(2) 数组定义为 int a5 , 数组长度为5 而下标在0 - 4之内, 即a0 - a44.1.1 一维数组的引出及使用五、 一维数组的初始化1. 概念 : 在定义一维数组时对各元素指定初始值称为 数组的初始化int a5 = 1 , 3 , 5 , 7 , 9 ;2. 说明 对数组的全体元素指定初值, 初值用 括起来, 数据之间用 逗号分开。这种情况下, 可以不指明数组的长度, 系统会根据 内数据的个数确定数组的长度 int a = 1 ,

7、3 , 5 , 7 , 9 ;(2) 对数组中部分元素指定初值 ( 这时不能省略数组长度 ) int a5 = 1 , 3 , 5 ; (3) 使数组中的全部元素初始值都为 0 int a5 = 0, 0, 0, 0, 0 ;简单的写法: int a5= 0 ;4.1.1 一维数组的引出及使用1357913500 逆序#include#define N 10void main( ) int i, t, aN; for ( i=0; iN; i+) ai = i ; for(i=0; iN/2; i+) t=ai; ai=aN-1-i; aN-1-i=t; for( i=0; i=9; i+) printf(%3d , ai);例4-2: 使数组元素a0a9的值为09, 将其逆置后再输出4.1.1 一维数组的引出及使用 5 8 0 1 9 2 6 3 7 4a0a1a2a3a4a5a6a7a8a9a0a9457830a1a8a2a7例4-3: 用数组求fibonacci数列的前20个数#include void main( ) int i , f20=1,1; for ( i=2 ; i20 ; i+) fi=fi-2+fi-1; for ( i=0; i20 ; i+) if ( i%4=0 )

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论