Я пытаюсь проверить, есть ли повторяющееся целое число в массиве пользовательского ввода. Проблема в том, что проверка дубликата не работает должным образом, и я понятия не имею, почему он не показывает желаемый результат. Ниже приведен код:
#include <iostream>
using namespace std;
int main()
{
int length;
int arrValue;
cout << "Enter the length : ";
cin >> length;
int *arr = new int[length];
cout << "Enter " << length << " integers for array : ";
for(int i = 0; i < length; i++)
{
cin >> arr[i];
}
cout << "Array : ";
for(int i = 0; i < length; i++)
{
arrValue = arr[i];
for(int k = i + 1; k < length; k++)
{
if(arr[i] == arr[k])
{
cout << "Duplicate found" << endl;
break;
}
else
{
cout << arrValue << " ";
}
}
}
delete[] arr;
}
Текущий результат (при условии отсутствия дубликатов при вводе пользователем):
Enter the length: 5
Enter 5 integers for array : 5 4 3 2 1
Array : 5 5 5 5 4 4 4 3 3 2
Ожидаемый результат (при условии отсутствия дубликатов в пользовательский ввод):
Enter the length: 5
Enter 5 integers for array : 5 4 3 2 1
Array : 5 4 3 2 1
Текущий результат (при условии дублирования в пользовательском вводе):
Enter the length: 5
Enter 5 integers for array : 5 4 4 2 1
Array : 5 5 5 5 Duplicate found 4 4 3
Ожидаемый результат (при условии дублирования в пользовательский ввод):
Enter the length: 5
Enter 5 integers for array : 5 4 4 2 1
Array : Duplicate found
Я считаю, что мои циклы являются источником проблемы. Текущий результат выводится 10 раз, и я не понимаю, почему будет появляться так много одинаковых чисел.
Обратите внимание, что я пытаюсь применить проверку, используя только l oop, а не из стандартной библиотеки C ++.