#include#include using namespace std; int main() { cout << " 第一种方式建立数组 " << endl; int arr[5]; arr[0] = 10; arr[1] = 20; arr[2] = 30; arr[3] = 40; arr[4] = 50; // 对数组中元素分别赋值 cout << arr[0] << endl; cout << arr[1] << endl; cout << arr[2] << endl; cout << arr[3] << endl; cout << arr[4] << endl; // 访问数组中第五个元素的 cin.get(); cout << " 第二种方式建立数组 " << endl; int arr0[5] = { 15, 16, 17, 18, }; for (int num = 0; num < 5; num++) { cout << arr0[ num ] << endl; } // 若数组中未对全部元素进行初始化,则默认为 0 cin.get(); cout << " 第三种方式建立数组 " << endl; int arr1[] = { 11, 22, 33, 44, 55, 66, 77, 88, 99, 111 }; // 会自动计算数组元素个数 for (int num1 = 0 ; num1 < 10; num1++) { // 定义数组必须有初始的元素个数 cout << arr1 [num1] << endl; } cin.get(); // 一维数组名名称的用途 // ① 可以统计整个数组在内存中的长度 // sizeof ( 数组名 ); 或者 sizeof ( 数组名[下标]) // 两者相除 得到 元素个数 // ② 可以获取数组在内存中的首地址 int arr2[10] = { 1, 2, 3, 4, 5 , 6, 7, 8, 9, 10 }; sizeof(arr2); sizeof(arr2[0]); cout << " 该数组中元素个数为 :" << ((sizeof(arr2)) / (sizeof(arr2[0]))) << endl; cout << " 该数组的首地址为 : " << arr2 << endl; cout << " 该数组的第一个元素的地址为 : " << &arr2[0] << endl; // 访问元素地址要加符号 & cout << " 该首地址对应的十进制为 : " << (int)arr2 << endl; cout << " 该数组的第一个元素的十进制地址为 : " << (int)&arr2[0] << endl; cout << " 该数组的第二个元素的十进制地址为 : " << (int)&arr2[1] << endl; // 运行之后会发现两者地址相差 4 , 因为一个元素占用四个字节 cin.get(); // 一维数组案例 // 五只小猪称体重 int arr3[5] = { 200 , 700, 600 ,755, 394 }; int pig_max = 0; for (int num2 = 0; num2 < 5; num2++) { if (pig_max > arr3[num2]) { continue; } else { pig_max = arr3[num2]; } } cout << " 五只小猪中体重最大的是: " << pig_max << endl; cin.get(); // 数组元素逆置 int arr4[5] = { 1 , 2 , 3 , 4 , 5 }; cout << " 数组元素逆置前的为: " << endl ; for (int num3 = 0; num3 < 5 ; num3++ ) { cout << arr4[num3] << "t" ; } cout << endl; int start = 0; // 起始下标 int end = ((sizeof(arr4)) / (sizeof(arr4[0]))) - 1; // 终止下标 while (start <= end) { // 实现元素互换 int temp = arr4[start]; // 定义一个元素值互换的临时内存空间 arr4[start] = arr4[end]; arr4[end] = temp; // 实现下标更新 start++; end--; } cout << " 数组元素逆置后的为: " << endl; for (int num4 = 0; num4 < 5; num4++) { cout << arr4[num4] << "t"; } cout << endl; cin.get(); // 冒泡排序 // 比较相邻的元素 , 前者大于后者 , 交换 // 每一对相邻元素作上述工作 , 找到第一个最大值 // 重复以上步骤 , 每次比较次数 -1 , 直到不需要比较 int arr5[9] = { 4 , 8 , 2, 0 , 1 , 3 , 7, 9 , 5 }; cout << " 冒泡排序前数组为 : "; for (int num5 = 0; num5 < 9; num5++) { cout << arr5[num5] << "t"; } cout << endl; // 冒泡排序算法 // 排序轮数 = 元素个数 -1 for (int lun = 0; lun < (9 - 1); lun++) { // 内层循环对比 ********** 每轮对比次数 = 元素个数 - 排序轮数 - 1 for (int times = 0; times < (9 - lun - 1); times++) { if (arr5[times] > arr5[times + 1]) { int temp = arr5[times]; arr5[times] = arr5[times + 1]; arr5[times + 1] = temp; } else { continue; } } } cout << " 冒泡排序后数组为 : "; for (int num6 = 0; num6 < 9; num6++) { cout << arr5[num6] << "t"; } cout << endl; cin.get(); cin.get(); return 0; }



