【发布时间】:2020-11-01 04:23:40
【问题描述】:
我正在尝试检查用户输入数组中是否有任何重复的整数。问题是副本的验证无法正常工作,我不知道为什么它没有显示所需的输出。以下是代码:
#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次,我不明白为什么会出现这么多相同的数字。
请注意,我尝试仅使用循环而不是 C++ 标准库来应用验证。
【问题讨论】: