3.3重学C++之【二维数组应用、案例】

#include<iostream>
#include<string>
using namespace std;



int main(){
    /*
        二维数组的数组名
        查看二维数组所占内存空间
        获取二维数组首地址
    */


    // 1
    int arr[2][3] = {
        {1, 2, 3},
        {4, 5, 6}
    };
    cout << sizeof(arr) << endl;  // 4*6=24
    double _arr[2][3] = {
        {1, 2, 3},
        {4, 5, 6}
    };
    cout << sizeof(_arr) << endl;  // 8*6=48

    cout << sizeof(arr[0]) << endl;  // 二维数组arr第一行所占内存空间大小
    cout << sizeof(arr[0][0]) << endl;  // 二维数组arr第一个元素所占内存空间大小
    cout << "二维数组的行数=" << sizeof(arr) / sizeof(arr[0]) << endl;
    cout << "二维数组的列数=" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;


    // 2
    cout << "二维数组的首地址:" << arr << endl;
    cout << "二维数组的首地址:" << (int)arr << endl;
    cout << "二维数组第一行的首地址:" << (int)arr[0] << endl;
    cout << "二维数组第2行的首地址:" << (int)arr[1] << endl;
    cout << "二维数组第一个元素的首地址:" << (int)&arr[0][0] << endl; // 注意用&(取址符)取数组元素地址
    cout << endl;




    /*
        案例--二维数组
        考试成绩统计
    */
    int scores[3][3] = {
        {100, 100, 100},
        {90, 50, 100},
        {60, 70, 80}
    };
    string names[3] = {"张三", "李四", "王五"};
    for (int i=0; i<3; i++){
        int sum = 0; // 统计每个学生的总分
        for (int j=0; j<3; j++){
            //cout << scores[i][j] << " ";
            sum += scores[i][j];
        }
        cout << "第" << i+1 << "个学生" << names[i] << "的总分=" << sum << endl;
        //cout << endl;
    }



    return 0;
}

posted @ 2021-03-10 13:28  yub4by  阅读(55)  评论(0)    收藏  举报