1、六、数组为了解决比较复杂的问题,本章介绍 C语言提供的一种最简单的构造类型 数组。6.1 1维数组的定义和引用6.2 2维数组的定义和引用6.3 字符数组与字符串附 :请参阅 06第五章 数组构造数据类型之一数组 :有序数据的集合 ,用数组名标识元素 :属同一数据类型 ,用数组名和下标确定5.1 一维数组一维数组的定义v定义方式: 数据类型 数组名 常量 表达式 ; 合法标识符 表示元素个数下标从 0开始 :数组运算符单目运算符优先级 (1)左结合不能用 ( )例 int a6;a00145a1a2a3a4a523a编译时分配连续内存内存字节数 =数组维数 *sizeof(元素数据类型 )数组
2、名表示内存首地址,是 地址常量一维数组的引用v数组必须 先定义 , 后使用v只能逐个引用数组元素,不能一次引用整个数组v数组元素表示形式: 数组名 下标 其中:下标可以是常量或整型表达式例 int i=15;int datai; (不能用变量定义数组维数 )例 int a10;printf(“%d”,a); ()必须 for(j=0;jxi,令 min=xi3. 输出 :max和 min #include #define SIZE 10main() int xSIZE,i,max,min;printf(“Enter 10 integers:n“);for(i=0;ixi) min=xi;pri
3、ntf(“Maximum value is %dn“,max);printf(“Minimum value is %dn“,min);例 用数组求 Fibonacci数列前 20个数f0f1f2f3f4f5f19.11f1901452319235#include main() int i;int f20=1,1;for(i=2;ia1, 则交换;然后比较第二个数与第三个数;依次类推,直至第 n-1个数和第n个数比较为止 第一趟冒泡排序 ,结果 最大 的数被安置在最后一个元素位置上( 2)对前 n-1个数进行第二趟冒泡排序,结果使 次大 的数被安置在第 n-1个元素位置( 3)重复上述过程,共经
4、过 n-1趟冒泡排序后,排序结束例38 49 65 76 13 27 30 97第一趟38 49 65 13 27 30 76第二趟38 49 13 27 30 65第三趟38 13 27 30 49第四趟13 27 30 38第五趟13 27 30第六趟49 38 65 97 76 13 27 30初始关键字n=83849769713972797309713767676273013652765306513134949304927382738303813 27第七趟输入 n 个数给 a1 到 anfor j=1 to n-1for i=1 to n-jaiai+1真 假aiai+1输出 a1
5、到 an#include main() int a11,i,j,t;printf(“Input 10 numbers:n“);for(i=1;iai+1)t=ai; ai=ai+1; ai+1=t;printf(“The sorted numbers:n“);for(i=1;i11;i+)printf(“%d “,ai);例 用简单选择法对 10个数排序排序过程:( 1)首先通过 n-1次比较,从 n个数中找出最小的, 将它与第一个数交换 第一趟选择排序 ,结果 最小 的数被安置在第一个元素位置上( 2)再通过 n-2次比较,从剩余的 n-1个数中找出关键字 次小 的记录,将它与第二个数交换 第二趟选择排序( 3)重复上述过程,共经过 n-1趟排序后,排序结束