《C语言程序设计》第4章 数组

上传人:zw****58 文档编号:51583660 上传时间:2018-08-15 格式:PPT 页数:78 大小:3.48MB
返回 下载 相关 举报
《C语言程序设计》第4章 数组_第1页
第1页 / 共78页
《C语言程序设计》第4章 数组_第2页
第2页 / 共78页
《C语言程序设计》第4章 数组_第3页
第3页 / 共78页
《C语言程序设计》第4章 数组_第4页
第4页 / 共78页
《C语言程序设计》第4章 数组_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《《C语言程序设计》第4章 数组》由会员分享,可在线阅读,更多相关《《C语言程序设计》第4章 数组(78页珍藏版)》请在金锄头文库上搜索。

1、第四章 数 组Chapter 4 Array第四章 数 组在实际的应用中,经常会遇到某些类型相同并相互具有联系的 数据。该类数据,经常要作相关的处理。如,一个班30个人的一门 课程的成绩,求平均成绩、最高或最低成绩。处理这类数据的最好 办法是将其定义成为一个具有共同特征的集合,这种同类型相关数 据的集合称为数组。Chapter 4 Array第四章 数 组Chapter 4 Array 4.1 数组的基本概念C 语言可以根据用户需要,用基本数据类型定义特殊性质的数 据类型,称为构造类型。构造类型有:数组、结构、联合。数组:相同数据类型变量的有序集合。有序表现在数组元素在 内存中连续存放。数组用

2、一个名字作为标识。为区分各元素,每个元素有一个用 整型表示的序号,称之为下标。下标可以有多个,下标的个数称为 数组的维数。 如:十个整型变量 k0,k1, k9一个下标 。 数组名 。三个学生三门课程的成绩97.5 80.5 94.5 76.5 81.4 90.0 60.0 64.5 75.0 学号 0 1 20 1 2 课程 下标一:行下标二:列数组元素:a11第四章 数 组Chapter 4 Array/* example 4-1(b) 计算平均成绩 */#includevoid main(void) int i; float math,ave; ave = 0.0; /* 平均成绩初值为

3、0 */ for(i=0;ivoid main(void) int i; float math,ave; ave = 0.0; /* 平均成绩初值为0 */for(i=0;i=ave)printf(“%fn“,math); /* 大于平均成绩则打印 */ 【例4-1(b)】第四章 数 组Chapter 4 Array/* example 4-1(c) 计算平均成绩 */ #include void main(void) int i; float math10,ave; ave = 0.0; /* 平均成绩初值为0 */for(i=0;i=ave)printf(“%fn“,mathi); /*

4、大于平均成绩则打印 */ 【例4-1(c)】第四章 数 组Chapter 4 Array数组必须先说明后使用。说明的目的如下:说明数组的名字(标识)。 说明数组的类型。 说明数组的维数。 确定各维下标的变化范围。编译系统将根据说明,开辟内存单元按特有的顺序和相应的类 型为各元素分配内存单元。第四章 数 组Chapter 4 Array 4.2 一维数组一维数组的说明说明方式: type array1常量表达式, , arrayn常量表达式;类型说明符,根据需要可加修饰说明。说明数组的类型。数组名,用标识符命名。用 包含的常量表达式。数组的下标 从0变化到常量达式的值减一。int id5, iy

5、ear10; float fScore36;当说明数组后,编译时系统会根据定义的类型分配连续的一段 内存单元给数组的各元素。 id0 id1 id2 id3 id4系统为数组分配的连续内存单元,每个 单元占两个BYTE。首地址用数组名id表示 。第四章 数 组Chapter 4 Array 2. 一维数组的引用 数组是一组数,它们公用一个数组名,这是它们公有的属 性,但它们在数组中的位置不同,这是它们私有的属性,为 表明数组中的一个元素,既要指出其来自于哪个数组,这就 需要数组名;又要声明其在这个数组中的位置,这就需要下 标 。一维数组中元素引用的一般形式为: 数组名下标值说明: 下标通常为整

6、型,如果为实型,系统自动取整; 下标常常巧妙的和循环变量相结合,随着循环变量的变化而 变化,可以达到事半功倍的效果; C语言不做下标越界的检查,即语法上对越界的下标不报错。第四章 数 组Chapter 4 Array3. 一维数组的存储 计算机系统中有着大量的存储单元,为区别各个存储单元, 每一个存储单元都有一个唯一的代表这个存储单元的地址, 就好像我们每一个人都有一个唯一的代表自己的身份证号一 样。计算机系统中,存储单元的地址的编码规则是线性的, 以十六进制表示,并且从0开始计数,因此存储单元的地址 为:0、1、2、.9、A、B、C、D、E、F、10H、. . 如果说明的是一个数组,如:in

7、t math10; 计算机开辟20 个地址连续的存储单元(TC环境下整型占2个字节,共有10 个数组元素),用于存放数组中的10个数组元素,且这20个 存储单元的首地址标记为:数组名math或 /*说明数组,同时初始化全部元素。*/ float fValue10=1.0,2.0,3.0; /*说明数组,给部分元素初值,其余元素为0。*/ unsigned a =0x0000,0x0001,0x0002; /*当数组元素全部赋初值时,可以不指定长度*/ 第四章 数 组Chapter 4 Array/* example 4-2 数组的初始化 */ #include void main(void)

8、int i; int a5=1,2,3,4,5;int b5=1,2;int c =1,2,3;for(i=0;ivoid main(void) int month; int f13=1,1;for(month=2;monthvoid main(void) int i,n; int a=0,b=0,c=0,d=0,e=0; /* 表示各段人数 */float math50; printf(“n=?”); /* 输入人数 */scanf(“%d”, for(i=0;i=90) a+; /* 分别统计 */else if(mathi=80) b+;else if(mathi=70) c+;else

9、 if(mathi=60) d+; else e+; printf(“%dt%dt%dt%dt%dn“,a,b,c,d,e); /* 打印 */第四章 数 组Chapter 4 Array 例: 求10个学生一门课程的平均分,并输出低于平均成绩的分数。#include void main(void) float fScore10,aver=0;int i;for(i=0;ivoid main(void) int i,j; int a44;for(i=0;i=j) aij = 1; /* 下三角 */else aij = 0; /* 上三角 */ for(i=0;ivoid main(void)

10、 int i,j; int a33=1,2,3,4,5,6,7,8,9; /* 定义原数组 */ int b33; /* 定义新数组 */for(i=0;i void main(void) int i,j,t; int a33=1,2,3,4,5,6,7,8,9; /* 定义原数组 */ for(i=0;ivoid main(void) int i; char a12;for(i=0;ivoid main(void) char a12;scanf(“%s“,a); /* 输入a数组元素 */ printf(“%s”,a); /* 输出a数组元素 */ printf(“n“); 第四章 数 组C

11、hapter 4 Array【例4-9】字符输入输出举例#include void main(void) char str80;int i;gets(str);for(i=0 ; str i !=0; i+)if(stri=a strcpy(str1,str2); /*str1的内容是“Computer”*/ strcpy(str2,”Program”); /*str2的内容是“Program”*/ 说明: str1的长度要足够长; str1只能是字符数组名,str2可以是字符数组或字符串常量。第四章 数 组Chapter 4 Array 字符串连接函数strcat(str1, str2) 作

12、用:将str2连接到str1后(去掉str1的0)。 用法: char str115=“Anhui ”, str2 =”Hefei”; strcat(str1,str2); puts(str1); /*输出结果为 Anhui Hefei */ 说明: str1的长度要足够长; str1只能是字符数组名,str2可以是字符数组或字符串常量。测试字符串长度函数strlen(str)作用:测试字符串的实际长度。函数运算得到整型值,该值是 字符串的长度! int iLenStr; char str =“China”; iLenStr=strlen(str); printf(“%d”,iLenStr);结果?第四章 数 组Chapter 4 Array 字符串的比较

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 教育学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号