gpt4 book ai didi

c++ - 使用函数从 C++ 中的数组中删除重复项

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:11 29 4
gpt4 key购买 nike

我正在编写一个程序,让用户将整数输入到一个数组中,调用一个函数从该数组中删除重复项,然后打印出修改后的数组。当我运行它时,它允许我将值输入到数组中,但是当我完成输入值时,它会给我一个“Segmentation fault”错误消息。我做错了什么?

这是我的代码:

#include <iostream>

using namespace std;

void rmDup(int array[], int& size)
{
for (int i = 0; i < size; i++)
{
for (int j = i + 1; j < size; j++)
{
if (array[i] == array[j])
{
array[i - 1 ] = array[i];
size--;
}
}
}
}
int main()
{
const int CAPACITY = 100;
int values[CAPACITY], currentSize = 0, input;

cout << "Please enter a series of up to 100 integers. Press 'q' to quit. ";

while (cin >> input)
{
if (currentSize < CAPACITY)
{
values[currentSize] = input;
currentSize++;
}
}

rmDup(values, currentSize);

for (int k = 0; k < currentSize; k++)
{
cout << values[k];
}

return 0;
}

谢谢。

最佳答案

for (int i = 0; i < size; i++)
{
for (int j = i + 1; j < size; j++)
{
if (array[i] == array[j])
{
array[i - 1 ] = array[i]; /* WRONG! array[-1] = something */
size--;
}
}
}

如果array[0]array[1]相等,则array[0-1] = array[0],意思是array[-1] = array[0]。您不应该访问 array[-1]

关于c++ - 使用函数从 C++ 中的数组中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20501982/

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