Программа сперва генерирует 10 случайных чисел от 1 до 10, а далее считает сколько разных чисел повторяются.
Например, {1, 1, 1, 3, 4, 4, 2, 8, 7, 9}, в массиве повторяются числа (1 и 4), после чего в переменную вносится это количество (2).
Проблема в том, что если число будет повторяться один раз, то в переменную всё запишется правильно: {1, 1, 6, 3, 4, 4, 2, 8, 7, 9} - повторяется один раз цифра 1 и 4, значит x = ++x; И в консоли x = 2.
Но если, {1, 1, 1, 3, 4, 5, 2, 8, 7, 9} - цифра 1 повторяется трижды, x не будет равняться 1, будет выведен результат х = 3. То есть, программа подсчитала количество того, сколько раз цифра 1 выводилась.
srand(time(NULL));
int numbers[10]{};
int count = 0, countnumb = 10;
for (int i = 0; i < 10; i++)
{
numbers[i] = 1 + rand() % 10;
cout << numbers[i] << endl;
}
for (int j = 0; j < 10; j++) {
for (int k = 0; k < j; k++)
if (numbers[j] == numbers[k] && j != k)
{
count = ++count;
}
}
countnumb = countnumb - count;
cout << "Количество повторяющихся чисел: " << count << endl << "Количество чисел: " << countnumb;
В общем, при раскладе {1, 1, 1, 3, 4, 4, 2, 8, 7, 9} переменная должна выводить не цифру 4, а 2.