我的擦除重复代码有什么问题?

时间:2017-12-03 03:24:58

标签: c++

我只是尝试制作一个代码来清除数组中的重复数字但是在删除数字后我无法缩小数组大小。这是我的代码:

for (i=0;i!=n;i++)
{
    for (j=i+1; j!=n; j++)
    {
        if(arr[i]==arr[j])
        {
            while(j!=n-1)
            {
                arr[j]=arr[j+1];
                j++;
            }
            n--;
        }
    }
}

它没有崩溃,但它也没有运行所以我不知道出了什么问题。

1 个答案:

答案 0 :(得分:0)

您应该使用另一个var将下一个元素移动到其prev位置。删除后,您应该从同一个j位置开始搜索。

for (i=0;i!=n;i++)
{
    for (j=i+1; j!=n; j++)
    {
        if(arr[i]==arr[j])
        {
            int k = j;
            while(k != n-1)
            {
                arr[k]=arr[k+1];
                k++;
            }
            n--;
            --j;
        }
    }
}