【发布时间】:2018-11-18 19:05:04
【问题描述】:
所以我需要从最接近该列平均数的列中更改元素(整数)。 例如:
我们有这个二维数组array[3][3]
1 4 7
2 5 8
3 6 9
所以从第一列开始,我需要更改/替换 2 ((1+2+3)/3=2) 因为它最接近列的平均值
对于第二列,我需要更改/替换 5 ((4+5+6)/3=5)
第三个 8
所以在最终版本中我会得到
1 4 7
3 6 9
我只是通过缩短数组的长度并在每个插槽中推送数字来“删除”元素,这就是我对一维数组的做法
int search(char A[], int B[], int n, char tp, int dd) //Search for number
{
int ind = -1;
for (int i = 0; i < n; i++)
if ((A[i] == tp) && (B[i] == dd))
ind = i;
return ind;
}
void remove(char A[], int B[], int & n, int ind) //remove number from array
{
for (int i = ind; i < n - 1; i++)
{
A[i] = A[i + 1];
B[i] = B[i + 1];
}
n--;
我知道如何删除简单的一维数组中的元素,但不能真正想出实现从二维数组中删除元素的方法
任何帮助将不胜感激
【问题讨论】:
-
请展示您解决此任务的尝试 - 即使它不成功。 “从数组中删除元素”到底是什么意思?你知道
std::vector吗? -
“我们有这个二维数组” 那是一堆数字,不是二维数组。请注意,您不能从原始 c 样式数组中删除任何元素。为此,您需要在代码中使用
std::vector<std::vector<int>>表示二维数组。 -
我明白了,你有文本,它代表(解释后)一个二维数组。您是否将数据存储在某个
int array[3][3]或某个std::vector<std::vector<int>>容器中? -
@Dj_Bear 我知道如何删除简单一维数组中的元素 -- 你怎么能做到不可能?您不能从数组中删除元素。您可以更改元素,但不能简单地删除元素。
-
@Dj_Bear -- 在您发布的代码中(请在此处发布,而不是在 pastebin 上发布),您是在 更改 元素,而不是从数组中删除元素。请注意更改和删除之间的区别。数组的大小仍然是
n个项目。
标签: c++ arrays multidimensional-array