我应该如何设置这个 c++ 问题?我不需要为我解决它,但是朝着正确的方向前进会很好

Posted

技术标签:

【中文标题】我应该如何设置这个 c++ 问题?我不需要为我解决它,但是朝着正确的方向前进会很好【英文标题】:How should I set up this c++ problem? I don't need it solved for me but a point in the right direction would be nice 【发布时间】:2020-11-26 01:04:20 【问题描述】:

这是我收到的问题:

创建一个 4X3 整数数组并使用循环逐列填充它,奇数从 1 开始。在一个单独的一维数组中,存储 4X3 数组的每一列的平均值。输出 4X3 数组(作为 4X3 数组),输出每列下面每列的平均值。将这些标记为平均值。

我刚刚了解到我可以制作这样的数组:N[4][3],但我应该在这里做吗?我觉得为每个范围设置一个数组:1-4、5-8 和 9-12,效果会更好,所以我可以在最后平均它们。

我不熟悉多维数组,所以如果我应该从这里开始,请告诉我(我意识到这不是我的想法,我将它们分开,就像我之前提到的那样。我仍然不确定这个,以防你无法分辨)。

int X, N[3][4]=1;

for(X=1; X<12; X++) 
    N[X]= N[X-1]+2;

据我所知,表格是自动填充的,每一行都是按顺序填充的,而不是每一列。如何将它们填充到列中?我认为拆分他们的策略会为我做到这一点,如果我错了,请纠正我。

【问题讨论】:

根据定义,4x3 数组是多维数组,所以是的 - 您必须使用您指定的数组类型。根据您发布的循环,您将需要返回课程以获取填充数组的正确语法。请注意:使用x + 1 进行索引时,请注意不要超出数组的范围, 提示:将迭代器变量放入循环中,变量也使用小写,如for (int x = 1; x &lt; 12; x++) 因为这是一个多维数组,您需要像N[i][j] 一样引用它,其中ij 是索引。它本身不是一个奇异数组。 @KenWhite 我得到的关于多维数组的课程似乎对这个问题没有太大的相关性/帮助,这就是我在这里的原因哈哈。你介意通过不超过数组的范围来扩展你的意思吗?喜欢保持小于12?另外:我不会说谎你指的是哪个数组,我用多个小数组描述的那个还是我实际编码出来的那个? @tadman 等待不要听起来很愚蠢,但是当你说我应该将它包含在我的循环中时,你指的是什么迭代器变量?至于 i/j 部分,我想为 i 和 j 创建一个数组??以防你看不出我迷路了 【参考方案1】:

要记住的重要一点是,当您使用 for 循环访问像这样定义的一维数组的元素时,例如 for(int i=0; i&lt;n; i++),i 是您正在使用的数组的索引访问特定元素。

在二维数组的情况下,您需要 2 个 for 循环(一个嵌套在另一个内部) - 第一个用于行的索引,另一个用于列的索引。 下面是一个示例,说明如何使用维度 MxN 填充二维数组(逐列迭代),其中所有元素都为零:

int matrix[M][N];
for(int j=0; j<N; j++) 
   for(int i=0; i<M; i++) 
       //j is an index for the column
       //i is an index for the row
       matrix[i][j] = 0;
   

要使用奇数填充它,您可以使用初始化为 1 的单独变量,并为矩阵中的每个新元素将其值增加 2。

【讨论】:

好吧,我还是卡住了,你介意参考实际问题显示这部分吗?

以上是关于我应该如何设置这个 c++ 问题?我不需要为我解决它,但是朝着正确的方向前进会很好的主要内容,如果未能解决你的问题,请参考以下文章

如何将指针转换为我在 C++ 中输入的类型?

具有对和静态函数的 C++ 模板

C++ Win32 FPS 和 DeltaTime 实现

如何设置 Visual Studio C++“默认默认”项目设置

是否应该从 C++ 中的静态库项目中删除 stdafx.h/.cpp? [关闭]

Visual Lisp:如何调用外部 C++ DLL 中的函数