如何定义一个2维数组,然后使用2层嵌套的for循环遍历2维数组中的每个元素?如何定义一个3维数组,然后使用3层嵌套的for循环遍历3维数组中的每个元素?

问题描述:

根据下面的代码和结果回答下面的问题。如何定义一个2维数组,然后使用2层嵌套的for循环遍历2维数组中的每个元素?如何定义一个3维数组,然后使用3层嵌套的for循环遍历3维数组中的每个元素?

代码:

// Created by 黑马程序员.
#include "iostream"

using namespace std;

/*
 * 会有多层嵌套循环
 * 每一层循环对应一个维
 * 一般for循环更为方便
 */

int main()
{
    int v1[2][3] = {
            {1, 2, 3},
            {4, 5, 6}
    };

    for (int i=0; i < sizeof(v1) / sizeof(v1[0]); i++)
    {
        // v1[0] -> {1, 2, 3};
        // v1[1] -> {4, 5, 6};
        for (int j=0; j < sizeof(v1[0]) / sizeof(v1[0][0]); j++)
        {
            cout << v1[i][j] << endl;
        }
    }

    int v2[2][2][3] = {
            {
                    {1, 2, 3},
                    {4, 5, 6}
            },
            {
                    {7, 8, 9},
                    {10, 11, 12}
            }
    };
    for (int i=0; i < sizeof(v2)/sizeof(v2[0]); i++)
    {
        // v2[0] {
        //                    {1, 2, 3},
        //                    {4, 5, 6}
        //            },
        // v2[1] {
        //                    {7, 8, 9},
        //                    {10, 11, 12}
        //            }
        for (int j=0; j < sizeof(v2[0])/sizeof(v2[0][0]); j++)
        {
            // v2[0][0] -> {1, 2, 3}
            // v2[0][1] -> {4, 5, 6}
            for (int k=0; k < sizeof(v2[0][0])/sizeof(v2[0][0][0]); k++)
            {
                cout << v2[i][j][k] << endl;
            }
        }
    }
    return 0;
}

结果:

D:\CLion_code\cmake-build-debug\CLion_code.exe
1
2
3
4
5
6
1
2
3
4
5
6
7
8
9
10
11
12

Process finished with exit code 0

问题解答:

如何定义一个二维数组并使用嵌套的 for 循环遍历每个元素?

定义二维数组:

int v1[2][3] = {
    {1, 2, 3},
    {4, 5, 6}
};

遍历二维数组:

for (int i = 0; i < sizeof(v1) / sizeof(v1[0]); i++) {
    for (int j = 0; j < sizeof(v1[0]) / sizeof(v1[0][0]); j++) {
        cout << v1[i][j] << endl;
    }
}

解释:

  • sizeof(v1) / sizeof(v1[0]) 计算数组的行数。
  • sizeof(v1[0]) / sizeof(v1[0][0]) 计算每行中的元素个数。

遍历的过程:

  • 外层循环 i 控制行遍历。
  • 内层循环 j 控制列遍历。
  • 使用 v1[i][j] 访问二维数组中的每个元素。

如何定义一个三维数组并使用嵌套的 for 循环遍历每个元素?

定义三维数组:

int v2[2][2][3] = {
    {
        {1, 2, 3},
        {4, 5, 6}
    },
    {
        {7, 8, 9},
        {10, 11, 12}
    }
};

遍历三维数组:

for (int i = 0; i < sizeof(v2) / sizeof(v2[0]); i++) {
    for (int j = 0; j < sizeof(v2[0]) / sizeof(v2[0][0]); j++) {
        for (int k = 0; k < sizeof(v2[0][0]) / sizeof(v2[0][0][0]); k++) {
            cout << v2[i][j][k] << endl;
        }
    }
}

解释:

  • sizeof(v2) / sizeof(v2[0]) 计算三维数组的第一维度大小(层数)。
  • sizeof(v2[0]) / sizeof(v2[0][0]) 计算每层中二维数组的行数。
  • sizeof(v2[0][0]) / sizeof(v2[0][0][0]) 计算每行中元素的个数。

遍历的过程:

  • 外层循环 i 控制三维数组的第一维度。
  • 中间层循环 j 控制二维数组的行遍历。
  • 内层循环 k 控制列遍历。
  • 使用 v2[i][j][k] 访问三维数组中的每个元素。

运行结果

遍历二维数组时,输出为:

1
2
3
4
5
6

遍历三维数组时,输出为:

1
2
3
4
5
6
7
8
9
10
11
12

总结

  • 二维数组通过两层 for 循环遍历,每层分别对应数组的行和列。
  • 三维数组通过三层 for 循环遍历,每层分别对应三维数组的不同维度。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神笔馬良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值