c++ - 使用 3D 数组

标签 c++ arrays function multidimensional-array

我将以标准的“我是 C++ 新手”声明作为开头。这是我第一次使用数组并且遇到了一些困难。

我大致了解数组。我也明白初始化数组。我苦苦挣扎的地方是从我的 3D 阵列打印特定的行/列。基本上,我们有三个月的高温和低温大阵。目标是根据用户请求打印数组的各个子集。 Here是我程序的外壳。我只为初学者输入了 3 天的数据。

提供了计算平均值、最大值和最小值的函数。也许我没有完全理解这些功能是如何运作的。

我从这样的事情开始:

case 'A':
    cout << "Which month? ('J' for June, 'U' for July, 'A' for Aug)" << endl;
cin >> y;
    switch (y)
    {
    case 'J':
        cout << "The average for June was " << for (i=0; i<DAY; i++)
        {
            for (j=0; j<1; j++)
            {
                for (k=0; k<XTR; k++)
                {
                    average_array[3][0][2];
                }
            }
        } << endl; break;

我想调用函数 average_array 来遍历 6 月的所有 (3) 天,并打印结果。

我也试过替换像这样的东西:

average_array[DAY][MONTH][XTR];

for (i=0; i<30; i++)
{
    for (j=0; j<1; j++)
    {
        for (k=0; k<2; k++)

非常感谢任何建议!显然,我的做法完全错误,只是不理解如何引用数组中的特定值集。我们的教科书最接近解释这一点的是遍历一维和二维数组并打印结果。这是一项小任务,但理解这一点是完成我们下一个(也是最后一个)大型项目的关键。

最佳答案

for 循环不能用作 cout 的输入。您应该像这样分别计算每个数组值:

cout << "The average for June was ";
for (i=0; i<DAY; i++) {
   for (j=0; j<1; j++){
       for (k=0; k<XTR; k++){
           cout << average_array[3][0][2];
           //to make it a little nicer, use this
           //cout << ", "
       }
   }
} 
cout << endl;

但是,即使进行了上述修复也存在一些问题:

  1. 这只是打印出 average_array[3][0][2] 的值多次。如果您想打印出数组中的每个值,请更改 [3][0][2][i][j][k] .

  2. 你的 for (j=0; j<1; j++)只循环 j 的一个值,即 0。没有理由要有这个循环。

关于c++ - 使用 3D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28920888/

相关文章:

c++ - 容器及其内容的 const 与非 const

c++ - 如何在 C++ 中访问函数作用域变量?

c++ - Clang 静态链接 libc++

C++程序在函数调用处停止

javascript - 防止 JavaScript 函数运行两次(setTimeout)

c++ - C++ 语法演化是如何管理的?

c - sprintf for 循环段错误

java - 如何将 input.txt 存储在字符串数组中,然后将值解析到单独的数组中

ios - 按其他数组排序数组?

java - 当参数中已提供字节数组对象时,为什么某些 Java 函数需要字节数组长度?