#include#include using namespace std; int main() { // 二维数组 —— 在一维数组的基础上增加一个维度 // 四种定义方式: // ① 数据类型 数组名[行数][列数]; // ② 数据类型 数据名[行数][列数] = {{ 数据1, 数据2.。。},{数据3, 数据4.。。。。}} // ③ 数据类型 数据名[行数][列数] = { 数据1, 数据2 ,数据3, 数据4.。。。。} // ④ 数据类型 数据名[ ][列数] = { 数据1, 数据2 ,数据3, 数据4.。。。。} // 第二种方式定义的二维数组可读性高 // 第一种方式定义及输出 cout << " 第一种方式定义的数组为 : " << endl; int arr0[2][3]; arr0[0][0] = 1, arr0[0][1] = 2, arr0[0][2] = 3; arr0[1][0] = 4, arr0[1][1] = 5, arr0[1][2] = 6; for (int num0 = 0; num0 < 2; num0++) { for (int num1 = 0; num1 < 3; num1++) { cout << arr0[num0][num1] << "t"; } cout << endl; } cin.get(); // 第二种方式定义及输出 cout << " 第二种方式定义的数组为 : " << endl; int arr1[2][3] = { { 1 , 2 , 3 }, { 4 , 5 , 6 } }; for (int num2 = 0; num2 < 2; num2++) { for (int num3 = 0; num3 < 3; num3++) { cout << arr1[num2][num3] << "t"; } cout << endl; } cin.get(); // 第三种方式定义及输出 cout << " 第三种方式定义的数组为 : " << endl; int arr2[2][3] ={ 1 , 2 , 3 ,4 , 5 , 6 }; for (int num4 = 0; num4 < 2; num4++) { for (int num5 = 0; num5 < 3; num5++) { cout << arr1[num4][num5] << "t"; } cout << endl; } cin.get(); // 第四种方式定义及输出 cout << " 第四种方式定义的数组为 : " << endl; int arr3[ ][3] = { 1 , 2 , 3 ,4 , 5 , 6 }; // 行数可以不写,列数必须有 for (int num6 = 0; num6 < 2; num6++) { for (int num7 = 0; num7 < 3; num7++) { cout << arr1[num6][num7] << "t"; } cout << endl; } cin.get(); // 二维数组名称的作用 // ① 查看二维数组所占的内存空间 ② 查看首地址 int arr4[2][3] = { { 11 , 22 , 33 }, { 44 , 55 , 66 } }; cout << "该二维数组占用的内存空间为:" << sizeof(arr4) << endl; // 看二维数组某行所占用的内存空间 cout << "该二维数组第0行占用的内存空间为:" << sizeof(arr4[0]) << endl; // 看二维数组某元素所占用的内存空间 cout << "该二维数组第0行第0列占用的内存空间为:" << sizeof(arr4[0][0]) << endl; // 看二维数列数 cout << "该二维数组列数为:" << ((sizeof(arr4[0])) / (sizeof(arr4[0][0] ) ))<< endl; // 看二维数行数 cout << "该二维数组行数为:" << ((sizeof(arr4)) / (sizeof(arr4[0]))) << endl; // 查看二维数组首地址 cout << "该二维数组首地址为:" << arr4 << endl; cout << "对应的十进制为: " << (int)arr4 << endl; // 查看二维数组某行首地址 cout << "该二维数组第一行首地址为:" << arr4[0] << endl; cout << "对应的十进制为: " << (int)arr4[0] << endl; // 查看二维数组某行首地址 cout << "该二维数组第二行首地址为:" << arr4[1] << endl; cout << "对应的十进制为: " << (int)arr4[1] << endl; // 查看某元素首地址 cout << "该二维数组第二行第二列元素的首地址为:" << &arr4[1][1] << endl; cout << "对应的十进制为: " << (int)&arr4[1][1] << endl; cin.get(); // 考试成绩统计案例 int test_score[3][3] = { { 100 , 100 , 100 } , { 90 , 50 , 100 } , { 60 , 70 , 80 } }; string names[3] = { "张三" , "李四", "王五 " }; // 定义学生姓名列表 cout << "t" << "语文t" << "数学t" << "英语t" << "总分t" << endl; //打印成绩表头 for (int num8 = 0; num8 < 3; num8++) { cout << names[num8] << "t"; // 先打印学生姓名 int sum = 0; // 定义总分变量 for (int num9 = 0; num9 < 3; num9++) { cout << test_score[num8][num9] << "t"; // 打印各科目成绩 sum += test_score[num8][num9]; // 计算总成绩 } cout << sum << "t" << endl; // 打印总成绩并换行 } cin.get(); cin.get(); return 0; }



