C语言程序设计(第二版) 教学课件 ppt 作者 林小茶 C_ch7

上传人:E**** 文档编号:89422952 上传时间:2019-05-25 格式:PPT 页数:72 大小:364KB
返回 下载 相关 举报
C语言程序设计(第二版) 教学课件 ppt 作者 林小茶 C_ch7_第1页
第1页 / 共72页
C语言程序设计(第二版) 教学课件 ppt 作者 林小茶 C_ch7_第2页
第2页 / 共72页
C语言程序设计(第二版) 教学课件 ppt 作者 林小茶 C_ch7_第3页
第3页 / 共72页
C语言程序设计(第二版) 教学课件 ppt 作者 林小茶 C_ch7_第4页
第4页 / 共72页
C语言程序设计(第二版) 教学课件 ppt 作者 林小茶 C_ch7_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《C语言程序设计(第二版) 教学课件 ppt 作者 林小茶 C_ch7》由会员分享,可在线阅读,更多相关《C语言程序设计(第二版) 教学课件 ppt 作者 林小茶 C_ch7(72页珍藏版)》请在金锄头文库上搜索。

1、C 语言程序设计,林小茶 Email: ,第7章 数组,7.1 问题提出与程序示例 7.2 一维数组 7.3 二维数组 7.4 数组作为函数的参数 7.5 字符串与字符串函数 小结,7.1 问题提出与程序示例,例7.1编写程序输入100个学生的“C程序设计”课程的成绩,将这100个分数从小到大输出。 #include “stdio.h“ #define SIZE 100 void main() int dataSIZE; /*数组定义:定义一个存储100个学生成绩的数组*/ int i,j,temp,min_a; printf(“nPlease input %d int:“,SIZE); fo

2、r (i=0;iSIZE;i+) scanf(“%d“, /*数组的引用:输出某个学生的成绩*/ ,7.1 问题提出与程序示例,掷骰子的问题,需要使用6个计数器来记录掷骰子的情况,如果不使用数组,可以编写程序如下: #include “stdio.h“ #include “stdlib.h“ #include “time.h“ void main() int i,j; static s0,s1,s2,s3,s4,s5; /*定义6个计数器,初值为0(内部静态变量)*/ time_t t; /*定义时间变量*/ srand(unsigned) time( /*输出结果*/ ,例7.2编写程序模拟

3、掷骰子(假设骰子有六面),投掷一个骰子1000次,记录投掷每一面的次数。 #include “stdio.h“ #include “stdlib.h“ #include “time.h“ void main() int i,j; int s6=0; /* s数组定义,并将每个元素值初始化为0*/ /*定义含有6个计数器的数组*/ time_t t; /*定义时间变量*/ srand(unsigned) time( ,7.2 一维数组,7.2.1 一维数组的定义,7.2 一维数组,7.2.1 一维数组的定义,数据类型说明符 数组名数组长度;,整数常量或常量表达式,例如: int a5; 定义整型

4、数组a,有5个元素。 float b10,c20; 定义单精度浮点型数组b,有10个元素; 单精度浮点型数组c,有20个元素。 char string20; 定义字符型数组string,有20个元素。,7.2 一维数组,7.2.1 一维数组的定义,(1) 数组的数据类型定义的是每个数组元素的取值类型。对于一个数组来说,所有数组元素的数据类型应该都是相同的。,(2) 数组名要符合用户定义字的书写规则,也就是与普通变量一样。,(3)在C语言的一个函数中,数组名不能与本函数的其它变量名同名。,7.2.1 一维数组的定义,void main() int i; double i20; /*错误,与变量名

5、i同名*/ ,错误程序,7.2.1 一维数组的定义,(4) 方括号中表示的是数组长度。数组长度不能是变量,也不能是包含变量的表达式,可以是常量或常量表达式。常量表达式的解必须是整型数,不能是小数,例如:int a5.5是错误的。,(5) 允许在同一个类型说明中,定义多个数组和多个变量。,7.2.1 一维数组的定义,#define SIZE 5 void main() int aSIZE,bSIZE +10; /*正确*/ 程序段二: void main() int n=5; int datan; /*错误*/ ,错误程序,7.2.1 一维数组的定义,正确程序,7.2.2 一维数组的引用,引用数

6、组单元的一般形式为: 数组名下标 数组下标可以是整型变量或整型表达式,但不能是浮点型的变量或浮点型表达式;并且下标不能大于数组长度-1,因为超过部分没有被定义过,是不能正确使用的。,7.2.2 一维数组的引用,int s6; s数组的6个元素的引用方式是s0、s1、s2、s3、s4和s5。,例7.1有如下程序段: for (i=0;iSIZE;i+) scanf(“%d“, /*相应的计数器加1*/ ,数组引用,7.2.2 一维数组的引用,7.2.2 一维数组的引用,不能用“printf(“%d“,s);”语句来代替程序段: for (i=0;iSIZE;i+) scanf(“%d“,”是错误

7、的。,int data5=1,2,3,4,5;,一维数组初始化的一般形式是: 数据类型说明符 数组名数组长度=数值,数值,. 数值;,举例,7.2.3 一维数组的初始化,语法,(1)允许初始化一部分元素,而不是全部。 int data5=1,2; int s6=0; a2、 a3、 a4 的值? a5合法吗?,(2)初始化数组时,允许省略数组的长度。 int data=1,2,3,4,5; 等价于 int data5=1,2,3,4,5 ;,(3)初始化数组时,不能对整个数组初始化int data5=1; 错误语句,7.2.3 一维数组的初始化,例7.3用数组方式解决Fibonacci数列问题

8、,求出Fibonacci数列的前20项存储在数组中,并将数组内容输出。 #include “stdio.h“ void main() int i,fib20=1,1; /*初始化 */ printf(“n“); for (i=2;i20;i+) /*循环18次*/ fibi=fibi-1+fibi-2; /*产生数组的每个元素值*/ for (i=1;i=20;i+) /*循环20次*/ printf(“%10d“,fibi-1); /*输出数组元素的内容*/ if (i%5=0) printf(“n“); /*换行,每行输出5个*/ ,7.2.4 程序举例,例7.4输入100个整数,求出最小

9、的数以及第一个最小的数在数组中的下标。 #include “stdio.h“ #define SIZE 100 void main() int i,dataSIZE; /*定义数组*/ int min_a; /*记录最小元素的下标*/ printf(“nPlease input %d int:“,SIZE); for (i=0;iSIZE;i+) /*读入SIZE个数据到数组中*/ scanf(“%d“, ,例7.5编写程序输入100个学生的“C程序设计”课程的成绩,将这100个分数从小到大输出。,例7.5编写程序输入100个学生的“C程序设计”课程的成绩,将这100个分数从小到大输出。 #i

10、nclude “stdio.h“ #define SIZE 100 void main() int i,j,dataSIZE,temp; /*定义变量和数组*/ int min_a; printf(“nPlease input %d int:“,SIZE); for (i=0;iSIZE;i+) /*循环读SIZE个数到数组中*/ scanf(“%d“,for (i=0;iSIZE;i+) min_a=i; /*假设第i个元素最小*/ for (j=i+1;jSIZE;j+) /*循环j从第i+1个元素到SIZE-1个*/ if (datajdatamin_a) /*若第j个元素小于当前最小元

11、素*/ min_a=j; /*j赋值给min_a*/ temp=datamin_a; /* datamin_a与datai做交换*/ datamin_a=datai; datai=temp; printf(“nAfter sorted:“); for (i=0;iSIZE;i+) /*输出排序以后的每个数组元素值*/ printf(“%5d“,datai); ,例7.6输入某年某月某日,计算是该年的第几天。 #include “stdio.h“ void main() int i,flag,year,month,day,dayth; int month_day=0,31,28,31,30,31

12、,30,31,31,30,31,30,31; printf(“nPlease input year/month/day:“); scanf(“%d/%d/%d“, ,如果一维数组的数组单元不是一个变量,而是另一个一维数组,就构成了二维数组。,7.3 二维数组,7.3 二维数组,7.3.1 二维数组的定义,定义二维数组的语法是: 数据类型说明符 数组名行数列数;,数组名是用户定义的标识符。方括号中的行数和列数都是一个常量表达式,它表示了二维数组的行的个数和列的个数。与一维数组一样,不论是行数还是列数都只能是常量或常量表达式。,7.3 二维数组,7.3.1 二维数组的定义,int data53;

13、说明整型数组a,有5行3列共15个整型变量。 float b1020; 说明单精度浮点型数组b,有10行20列共200个 单精度浮点型变量。 char string2050; 说明字符型数组string,有20行50列共1000个字 符型变量。,7.3 二维数组,二维数组的存储,stu_score02=stu_score00*0.3+stu_score01*0.7,7.3.2 二维数组的引用,引用二维数组的一般形式为: 数组名行下标列下标,数组下标可以是整型变量或整型表达式,但不能是浮点型的变量或浮点型表达式;并且行下标不能大于行数-1,列下标不能大于列数-1。,例7.8判断下面程序的运行结果

14、: #include “stdio.h“ void main() int i,j,a32; /*定义*/ for (i=0;i3;i+) /*行下标从0增加到2*/ for (j=0;j2;j+) /*列下标从0增加到1*/ aij=i+j; /*给相应数组元素赋值*/ for (i=0;i3;i+) /*行下标从0增加到2*/ for (j=0;j2;j+) /*列下标从0增加到1*/ printf(“ %10d“,aij); /*输出数组元素*/ printf(“n“); /*每输出一行换行*/ ,数据类型说明符 数组名行数列数=数值,数值,. 数值,数值,数值,. 数值;,7.3.3 二维数组的初始化,数据类型说明符 数组名行数列数=数值,数值,. 数值;,int a32= 5,6,7,8,9,10; /*按行分段初始化*/,int a32

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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