文档详情

C语言程序计(谭浩强编)第七章数组.ppt

发布:2018-12-31约1.52万字共42页下载文档
文本预览下载声明
第七章 数 组 在本章节前给大家讲的都是基本类型的数据,c语言还提供 了构造类型的数据(数组类型、结构体类型、共用体类型)。 数组是有序数据的集合,数组中的每个元素都属于同一个 数据类型。 7.1 一位数组的定义和引用 7.1.1一维数组的定义 定义方式: 类型说明符 数组名[ 常量表达式]; 例:int a[10]; 它表示数组名为a,此数组有10个元素。 7.1.2 一维数组元素的引用 C语言规定,只能逐个引用数组元素而不能一次引用整个数组。 数组元素的表示形式为: 数组名[下标] 其中下标可以是整型常量或整型表达式。例如: a[0]=a[5]+a[7]-a[2*3] 例7.1 数组元素的引用 #main ( ) { int i,a[10]; for(i=0;i=9;i++) a[i]=i; for(i=9;i=0;i- -) printf(“%d”,a[i]); } 7.1.3 一维数组的初始化 (1)在定义数组时对数组元素赋以初值。 例如:int a[10]={ 0,1,2,3,4,5,6,7,8,9 } 其中:a[0]=0, a[1]=1, a[2]=2, a[3]=3, a[4]=4, a[5]=5, a[6]=6, a[7]=7, a[8]=8, a[9]=9 (2)可以只给一部分元素赋值。 例如:int a[10]={0,1,2,3,4}; 其中:a[0]=0, a[1]=1, a[2]=2, a[3]=3, a[4]=4, a[5]=0, a[6]=0, a[7]=0, a[8]=0, a[9]=0 (3)如果想使一个数组中全部元素值为0,可以写成: int a[10]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0} 不能写成: int a[10]={0*10} (4)在对全部数组元素赋初值时,可以不指定数组长度。 例如: int a[5]={0,1,2,3,4} 可以写成: int a[ ]={0,1,2,3,4} 例如: int a[10]={0,1,2,3,4}; 只初始化了前5个元素,后5个元素为0。 7.1.4 一维数组程序举例 *例7.2 用数组来处理求Fibonacci数列问题。 main( ) { int i; int f[20]={1,1}; for (i=2;i20;i++) f[i]=f[i-2]+f[i-1]; for (i=0;i20;i++) { if(i%5==0) printf(“\n”); printf(“%12d”,f[i]); } } ※例7.3 用冒泡法对10个数排序(由小到大)。 冒泡法:对将进行排序的数,两两比较,如果不满足次序要求, 则交换位置; 从上述我们可以得出: 如果n个数参加冒泡排序,则共要进行n-1趟排序。在第j 趟比较中有n-j个数参加排序,要进行n-j-1次两两比较。本例中 第1趟有5个数参加排序,进行了4次比较。 *main ( ) { int a[10]; int i,j,t; printf(“input 10 numbers:\n”); for (i=0;i10;i++) scanf(“%d”,a[i]); printf(“\n”); for (j=0;j9;j++) for(i=0;i9-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=0;i10;i++) printf(“ %d”,a[i]); } 7.3.5 字符数组的输入输出 字符数组的输入输出可以有两种方法: (1)逐个字符输入输出。用格式符“%c”输入
显示全部
相似文档