在C中从数组打印重复项时会出现冗余结果?

在C中从数组打印重复项时会出现冗余结果?,c,arrays,C,Arrays,这是我代码的一小部分,我正在打印数组中找到的副本。问题在于,它会多次打印每个重复的事件。例如,数组{1,2,3,4,5,6,7,8,9,0,2,2)打印 而不仅仅是 for(i=0;i

这是我代码的一小部分,我正在打印数组中找到的副本。问题在于,它会多次打印每个重复的事件。例如,数组{1,2,3,4,5,6,7,8,9,0,2,2)打印

而不仅仅是

for(i=0;i
我假设您理解粘贴的代码的问题,并询问算法建议

如果允许CPP,可以考虑使用STL的映射,键是数字,值是数字的索引。循环一次,当你循环时,首先检查元素在地图中的出现。如果密钥已经存在,输出;否则,把这个元素和它的索引放到地图中。


希望有帮助。

如果允许修改数组,请考虑将数组中的值确定为一个副本(例如,将其设置为1或超出正常输入范围之外的其他值)。.

那么你想要实现什么呢?你必须记住你已经打印了哪些位置/值。如果值在两个以上的位置呢?我想这就是你看到的。@Rakkun谢谢,我想我现在知道该怎么做了。
value 2 at position 1 is also at position 10
value 2 at position 1 is also at position 11
value 2 at position 10 is also at position 11
value 2 at position 1 is also at position 10
value 2 at position 1 is also at position 11
    for(i = 0; i < num_count; ++i){
        for (j = i + 1; j < num_count; j++) {
            if (num[i] == num[j]){
                printf("\nvalue %d at position %d is also at position %d", num[i], i, j);
            }
        }
    }