MST
星途 面试题库

面试题:C语言多维数组下标的复杂逻辑应用

给定一个三维数组 int cube[2][3][4]; 要求编写一个函数,该函数接收这个三维数组的指针,计算并返回所有满足以下条件的元素之和:元素的三个下标之和为偶数,且元素值大于10。同时请阐述在处理该问题过程中,对多维数组下标的理解和使用技巧。
20.3万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

// 计算满足条件的元素之和
int sumElements(int (*cube)[3][4]) {
    int sum = 0;
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            for (int k = 0; k < 4; ++k) {
                if ((i + j + k) % 2 == 0 && cube[i][j][k] > 10) {
                    sum += cube[i][j][k];
                }
            }
        }
    }
    return sum;
}

在处理多维数组下标时:

  • 多维数组下标理解:多维数组可以看作是嵌套的数组结构。例如 int cube[2][3][4],可以理解为 cube 是一个包含2个元素的数组,每个元素又是一个包含3个元素的数组,而这3个元素中的每一个又是包含4个 int 类型元素的数组。从逻辑上,它构建了一个三维空间的矩阵模型。
  • 使用技巧
    • 遍历:通过多层嵌套循环来访问多维数组的每一个元素。最外层循环控制最高维度的下标变化,内层循环依次控制较低维度的下标变化。例如在上述代码中,最外层 for (int i = 0; i < 2; ++i) 控制第一维度的下标 i,中间层 for (int j = 0; j < 3; ++j) 控制第二维度的下标 j,最内层 for (int k = 0; k < 4; ++k) 控制第三维度的下标 k。这样就可以遍历到 cube 数组中的每一个元素。
    • 条件判断:可以利用下标的组合来实现各种条件筛选。比如本题中利用 (i + j + k) % 2 == 0 判断三个下标的和是否为偶数,结合 cube[i][j][k] > 10 筛选出满足条件的元素。