1、第五章 数组构造数据类型之一数组 :有序数据的集合 ,用数组名标识元素 :属同一数据类型 ,用数组名和下标确定5.1 一维数组一维数组的定义v定义方式: 数据类型 数组名 常量 表达式 ; 合法标识符 表示元素个数下标从 0开始 :数组运算符单目运算符优先级 (1)左结合不能用 ( )例 int a6;a00145a1a2a3a4a523a编译时分配连续内存内存字节数 =数组维数 *sizeof(元素数据类型 )数组名表示内存首地址,是 地址常量一维数组的引用v数组必须 先定义 , 后使用v只能逐个引用数组元素,不能一次引用整个数组v数组元素表示形式: 数组名 下标 其中:下标可以是常量或整型
2、表达式例 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;printf(“Maximum value is %dn“,max);printf(“Minimum value is %dn“,min);例 用数组求 Fibonacci数列前 20个
3、数f0f1f2f3f4f5f19.11f1901452319235#include main() int i;int f20=1,1;for(i=2;ia1, 则交换;然后比较第二个数与第三个数;依次类推,直至第 n-1个数和第n个数比较为止 第一趟冒泡排序 ,结果 最大 的数被安置在最后一个元素位置上( 2)对前 n-1个数进行第二趟冒泡排序,结果使 次大 的数被安置在第 n-1个元素位置( 3)重复上述过程,共经过 n-1趟冒泡排序后,排序结束例38 49 65 76 13 27 30 97第一趟38 49 65 13 27 30 76第二趟38 49 13 27 30 65第三趟38 1
4、3 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 到 an#include main() int a11,i,j,t;printf(“Input 10 numbers:n“);for(i=1;iai+1)t=ai; ai=ai+1
5、; 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趟排序后,排序结束例 初始: 49 38 65 97 76 13 27 kji=1 13 49一趟: 13 38 65 97 76 49 27 i=2 27 38二趟: 13 27 65 97 76 49 38 三趟: 13 27 38 97 76 49 65 四趟: 13 27 38 49 76 97 65 五趟: 13 27 38 49 65 97 76 六趟: 13 27 38 49 65 76 97 kkkkj j j j jj j j j j