有关阵列重复数据删除的错误

时间:2016-04-24 03:06:20

标签: c arrays

#include "stdio.h"
int main()
{


    int n[10]={1,1,2,2,3,3,4,4,5,5};
    int m =10;
    for (int i = 0; i < m; i++)
    {
        for (int j = i+1; j < m; j++)
        {
            if (n[i]==n[j])
            {
                for (int k = j; k< m-1 ; k++)
                {
                    n[k]=n[k+1];
                }
                m--;
            }
        }
    }
    for (int i = 0; i < m; i++)
    {
        printf("%d\n",n[i] );
    }

    return 0;
}

当数据是1122334455时,答案是肯定的:12345, 但是当1111111111时,答案是111,而不是1。 请告诉我为什么?谢谢!

1 个答案:

答案 0 :(得分:3)

删除元素时,&str仍然会增加,跳过一个值。以下打印'1'。

j