Если i
и j
одинаковы, вы всегда получите совпадение.Вы также получите дубликаты совпадений, если, например, элементы 2 и 3 совпадают, потому что вы проверяете 2 против 3 и 3 против 2. Чтобы поймать это, начните j
с одного больше, чем i
вместо 1. Кроме того, вы будетехотите вырваться из внутреннего цикла, когда найдете дубликат, чтобы при наличии нескольких экземпляров их не считали более одного раза.
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if (*(num+i)==*(num+j))
{
dup++;
break;
}
}
}