我有一个 char 数组,它有一些重复的值:
A B C D E F E A
这是我删除重复值的算法:
char array[20] = {'A', 'B', 'C', 'D', 'E', 'F', 'E', 'A'};
int length = 8;
for (int i = 0; i < length; i++)
{
for (int j = i + 1; j < length - 1; j++)
{
if (array[i] == array[j])
{
array[j] = array[j + 1];
length--;
}
}
}
EXPECTED OUTPUT: A B C D E F
OUTPUT: A B C D E F A
我曾尝试在论文中运行此算法,当我以书面形式执行此操作时似乎没问题,但它在我的应用程序中不起作用。
最佳答案
你应该在 if 语句中添加另一个 for 循环 检查下面的代码:
char array[20] = {'A', 'B', 'C', 'D', 'E', 'F', 'E', 'A'};
整数长度 = 8;
for(int i = 0; i <= length; i++){
for(int j = i+1; j <= length; j++){
if(array[j] == array[i]){
for(int x = j+1; x <=length; x++){
array[j]=array[x];
}
length--;
}
}
}
for(int z = 0; z <= length; z++){
cout << array[z] << " ";
}
cout << endl;
关于c++ - 从数组中删除重复项的算法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26736498/