【00005】 二、C语言2.4数组1.数组分为一维数组二维数组多维数组1一维数组数据类型 数组名[元素个数];数组名与变量名要求一致元素个数必须为常量不能是变量或变量表达式1.定义数组是一组相同类型数据的有限集合2.性质单一性连续性有序性2元素访问数组名[元素下标]元素下标为0 -- 元素个数-1 避免访问越界元素下标可以为常量、变量、表达式3数组的存储int a[n];数组所占空间大小 数据类型所占空间大小 * 元素个数获得数组元素个数的方法sizeof(a) / sizeof(a[0])4数组初始化初始化 ! 赋值不能对数组整体做操作只能依次对所有元素操作1.全部初始化int a[5] {1, 2, 3, 4, 5};2.部分初始化int a[5] {1, 2, 3};3.默认初始化int a[] {1, 2, 3, 4, 5};5数组常见算法1.找最大值#include stdio.hint main(void){int a[5] {0};int len sizeof(a) / sizeof(a[0]);int i 0;int max 0;for (i 0; i len; i){scanf(%d, a[i]);}max a[0];for (i 1; i len; i){if (a[i] max){max a[i];}}printf(max %d\n, max);return 0;}2.找最小值的下标位置#include stdio.hint main(void){int a[5] {0};int len sizeof(a) / sizeof(a[0]);int i 0;int minno 0;for (i 0; i len; i){scanf(%d, a[i]);}minno 0;for (i 1; i len; i){if (a[i] a[minno]){minno i;}}printf(min %d, no %d\n, a[minno], minno);return 0;}3.数组元素的倒置#include stdio.hint main(void){int a[5] {0};int len sizeof(a) / sizeof(a[0]);int i 0;int tmp 0;for (i 0; i len; i){scanf(%d, a[i]);}for (i 0; i len/2; i){tmp a[i];a[i] a[len-1-i];}for (i 0; i len; i){printf(a[%d] %d\n, i, a[i]);}return 0;}4.数组的排序1.冒泡排序#include stdio.hint main(void){int i 0;int j 0;int a[5] {0};int len sizeof(a) / sizeof(a[0]);int tmp 0;for (i 0; i len; i){scanf(%d, a[i]);}for (j 0; j len-1; j){for (i 0; i len-1-j; i){if (a[i] a[i1]){tmp a[i];a[i] a[i1];a[i1] tmp;}}}for (i 0; i len; i){printf(a[%d] %d\n, i, a[i]);}return 0;}2.选择排序#include stdio.hint main(void){int a[5] {0};int len sizeof(a) / sizeof(a[0]);int i 0;int j 0;int min 0;int tmp 0;for (i 0; i len; i){scanf(%d, a[i]);}for (j 0; j len-1; j){min j;for (i j1; i len; i){if (a[i] a[min]){min i;}}if (min ! j){tmp a[j];a[j] a[min];a[min] tmp;}}for (i 0; i len; i){printf(a[%d] %d\n, i, a[i]);}return 0;}