📜  C |数组|问题6(1)

📅  最后修改于: 2023-12-03 15:13:47.264000             🧑  作者: Mango

C 数组问题6

在 C 语言中,数组是一种存储固定长度元素序列的数据结构。数组中的元素可以是任意数据类型,例如整数、浮点数、字符等等。

数组问题 6 是关于 C 语言多维数组的问题,也就是数组中嵌套数组的情况。

问题描述

给定一个三维数组 arr,请编写一个函数 sum_of_elements,计算这个数组中所有元素之和。

函数原型如下:

double sum_of_elements(double arr[][2][3], int rows);

其中,arr 表示一个三维数组,它包含 rows 个二维数组。每个二维数组都有 2 行 3 列。sum_of_elements 函数需要返回这个数组中所有元素之和的值。

解决方案

我们可以使用三个嵌套的循环遍历三维数组 arr,计算出所有元素之和。

double sum_of_elements(double arr[][2][3], int rows) {
    double sum = 0;
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < 2; ++j) {
            for (int k = 0; k < 3; ++k) {
                sum += arr[i][j][k];
            }
        }
    }
    return sum;
}
示例

下面是一个使用示例:

#include <stdio.h>

double sum_of_elements(double arr[][2][3], int rows);

int main() {
    double arr[2][2][3] = {
        { {1.1, 2.2, 3.3}, {4.4, 5.5, 6.6} },
        { {7.7, 8.8, 9.9}, {10.1, 11.2, 12.3} }
    };
    double sum = sum_of_elements(arr, 2);
    printf("Sum of all elements: %f\n", sum);
    return 0;
}

double sum_of_elements(double arr[][2][3], int rows) {
    double sum = 0;
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < 2; ++j) {
            for (int k = 0; k < 3; ++k) {
                sum += arr[i][j][k];
            }
        }
    }
    return sum;
}

上面的示例运行结果为:

Sum of all elements: 78.900000
总结

数组是 C 语言中常用的数据结构之一,在多维数组中,嵌套循环可以方便地遍历所有的元素,进行各种操作。