文档详情

C语言第8章—数组和字符串2009.ppt

发布:2017-04-21约7.1千字共77页下载文档
文本预览下载声明
第8章 数组与字符串;第8章 数组与字符串; 整型 基本类型: 实型 字符型 、 枚举类型 数组类型 构造类型: 结构体类型 公用体类型 指针类型 空类型;;什么构造类型? 所谓构造类型是指由基本类型数据按一定的规则组成的,是用户自己按规则定义的。数组是构造类型之一。 在数学中我们学过数列、矩阵的概念, 数列通常表示为:a1 、a2 、a3、….、an 矩阵通常表示为: ;在C语言中表示数组和矩阵的方法是: 数组:a[0]、a[1]、a[2]、a[3]、a[4]、a[5] 其中 a :称为数组名。 方括号中的数:称为下标 下标是一个数时,也就是数列,称为一维数组。 下标是两个数时,也就是矩阵,称为二维数组。还有三维数组、四维数组等。 ;第8章 数组与字符串;;8.1 一维数组;???下数组定义是正确的: #define N 10 …… float score1[N], score2[N]; int num[10+N]; char c[26];;数组在内存的存放;8.1.2 数组元素的引用;8.1.2 数组元素的引用(续);8.1.2 数组元素的引用(续);合法标识符;;8.1.3 一维数组的初始化;8.1.4 一维数组应用举例;【例8.2】用数组求Fibonacci数列前20个数;;【例8.4】冒泡法排序(从小到大)。;例;冒泡法排序 (续);#include stdio.h main() { int a[11],i,j,t; printf(Input 10 numbers:\n); for(i=1;i11;i++) scanf(%d,a[i]); printf(\n); for(j=1;j=9;j++) for(i=1;i=10-j;i++) if(a[i]a[i+1]) {t=a[i]; a[i]=a[i+1]; a[i+1]=t;} printf(The sorted numbers:\n); for(i=1;i11;i++) printf(%d ,a[i]); };以6个数:3、7、5、6、8、0为例。 思路: 第一趟:将第一个数依次和后面的数比较,如果后面的某数小于第一个数,则两个数交换,比较结束后,第一个数则是最小的数。 第二趟:将第二个数依次和后面的数比较,如果后面的某数小于第二个数,则两个数交换,比较结束后,第二个数则是次小的数;…… 。;【例8.5】选择法排序(续);#define N 5 main( ) { int a[N]; int i,j,t; for (i=0; iN; i++) scanf(%d,a[i]); printf(\n); for (j=0; jN-1; j++) /*确定基准位置 */ for(i=j+1; iN; i++) if (a[j]a[i]) { t=a[j];a[j]=a[i];a[i]=t; } printf(The sorted numbers: \n); … } ;8.2 二维数组;x[0][0] x[0][1] x[0][2] x[1][0] x[1][1] x[1][2];例 int a[3][4]; ;x[0]是数组名,是元素x[0][0]的地址;a[3][4]=3; /* 下标越界 */ a[1,2]=1; /* 应写成 a[1][2]=1; */;8.2.3 二维数组的初始化;8.2.3 二维数组的初始化(续);下面对二维数组的定义都是错误的:;8.2.4 二维数组应用举例;二维数组元素的引用 形式: 数组名[下标][下标] 二维数组元素的初始化 分行初始化:; 程序举例;8.2.4 二维数组应用举例(续);#include math.h #define N 4 #define M 5 main( ) { int i,j,row,colum,max,a[N][M]; … … /* 输入数据 */ max=a[0][0]; row=colum=0; for (i=0; iN; i++) for (j=0; jM; j++) if (abs(a[i][
显示全部
相似文档