gpt4 book ai didi

c++ - 使用函数从 C++ 中的数组中删除 2 个或更多元素的序列?

转载 作者:太空宇宙 更新时间:2023-11-04 11:46:26 25 4
gpt4 key购买 nike

我是 C++ 编程新手,在编写此函数时遇到问题。我已经写了一些代码(见下文)但我不知道哪里出了问题。请帮我。谢谢。

这是数组:char marbles[10] = {'B', 'G', 'R', 'P', 'B', 'G', 'R', 'P', 'B', 'G'};

(a) 该函数接受一个字符数组和该数组的大小,并删除偏移量 pos 处的元素。偏移量大于 pos 的元素全部移动以填充间隙。这是我的代码,但我不确定它是否正确。

void deletePosition(char arr[], int size, int pos) 
{
for (int i = pos; i < size - 1; i = i + 1)
{
arr[i] = arr[i + 1];
}
size = size - 1;
}

(b)此函数接受一个字符数组,表示一系列彩色弹珠以及数组的大小。它删除所有 2 个或更多具有相同颜色的弹珠序列,并返回数组的新大小作为删除的结果。 “deletePosition”函数(以上 - 第 (a) 部分)应用于执行单个删除。

这是我的代码,但我不知道哪里出了问题

int deleteMarbles(char marbles[], int size) 
{
int i, j;
for (i = 1; i < size; i=i+1)
{
for (j=0; j<i; j=j+1)
{
if (marbles[i] == marbles[j])
{
deletePosition(marbles, size, i);
deletePosition(marbles, size, j);
}
}
}
return size;
}

最佳答案

您的 deletePostion() 需要通过引用获取 size:

void deletePosition(char arr[], int& size, int pos) 

关于c++ - 使用函数从 C++ 中的数组中删除 2 个或更多元素的序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19720589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com