我有一个字符数组,有一些重复的值:算法,从数组删除重复不起作用
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
我试图在论文中运行这个算法,看起来没问题,但是当我以书面形式做这件事时,却无法在我的应用程序中运行。
我猜'counter'是结果长度。 – 2014-11-04 13:39:02
抱歉,我在这里发帖时没有重写过。它应该是长度而不是计数器。 – 2014-11-04 13:40:27
您的“重复删除”步骤可靠地创建新副本。而不是'a [j] == a [i]'你现在有'a [j] == a [j + 1]'。始终 – 2014-11-04 13:44:17