我应该如何设置这个 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 < 12; x++)
。
因为这是一个多维数组,您需要像N[i][j]
一样引用它,其中i
和j
是索引。它本身不是一个奇异数组。
@KenWhite 我得到的关于多维数组的课程似乎对这个问题没有太大的相关性/帮助,这就是我在这里的原因哈哈。你介意通过不超过数组的范围来扩展你的意思吗?喜欢保持小于12?另外:我不会说谎你指的是哪个数组,我用多个小数组描述的那个还是我实际编码出来的那个?
@tadman 等待不要听起来很愚蠢,但是当你说我应该将它包含在我的循环中时,你指的是什么迭代器变量?至于 i/j 部分,我想为 i 和 j 创建一个数组??以防你看不出我迷路了
【参考方案1】:
要记住的重要一点是,当您使用 for 循环访问像这样定义的一维数组的元素时,例如 for(int i=0; i<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++ 问题?我不需要为我解决它,但是朝着正确的方向前进会很好的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 Visual Studio C++“默认默认”项目设置