I am working on an old exam and the problems states that a given array (int zahlen[]={1,4,5,1,5,7,9,2,3,4}) has values that are the same. The task is to replace the values that are the same with '-1'. After each replacement, a given variable, count, has to be increased by one.
My problem is that the variable count is two-times higher than normal (In this case there are only 3 of the same numbers and the variable shows 6.)
The function is called array_unique. I am would be grateful for a brief explanation of my mistake.
Here is my code:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    system("chcp 1252");
    int zahlen[]={1,4,5,1,5,7,9,2,3,4};
    int len = sizeof(zahlen)/sizeof(int);
    int erg = array_unique(zahlen,len);
    printf("Es wurden %d doppelte Zahlen gelöscht: \n",erg);
    printf("Das Array hat nun folgende Werte: ");
    printArrayUnique(zahlen,len);
    return 0;
}
void printArrayUnique(int *array, int len){
    for(int i=0; i<len; i++){
        if(array[i]!=-1){
            printf("%d ",array[i]);
        }
    }
}
int array_unique(int *array, int len){
    int count=0;
    for(int i=0; i<len;i++){
        for(int j=i+1; j<len;j++){
            if(array[i]==array[j]){
                array[j] = -1;
                count++;
            }
        }
    }
    return count;
}
I have not figured out any other solution to fix the faulty value of count.
 
    