数字の配列を読み込み、重複した数字だけを表示するプログラムを作成しています。しかし、私のコードは奇妙な動作をし、誤った出力(最後に出力される出力)を出力します。これは、これまでの私のコードです:数字の配列に重複した数字を表示する
#include <iostream>
using namespace std;
const int MAX_NUMBER_ELEMENTS = 20;
void fillArray (int a[], int size, int& numberUsed);
void deleteRepeats (const int a[], int numberUsed, int n);
int main()
{
int array [MAX_NUMBER_ELEMENTS], numberUsed;
cout << "This program reads in an array and scans for duplicate elements. " << endl;
cout << "Enter the array: \n";
fillArray(array, MAX_NUMBER_ELEMENTS, numberUsed);
deleteRepeats(array, numberUsed, 20);
}
void deleteRepeats (const int array[], int numberUsed, int n)
{
int i, j;
for (i = 0; i < n; i++)
{
for (j = i + 1; j < n; j++)
{
if (array[i] == array[j])
cout << "The duplicate " << array[i] << " was found. ";
}
}
}
void fillArray (int a[], int size, int& numberUsed)
{
cout << "Enter up to " << size << " nonnegative whole numbers.\n"
<< "Mark the end of thae list with a negative number.\n";
int next, index = 0;
cin >> next;
while ((next >= 0) && (index < size))
{
a[index] = next;
index++;
cin >> next;
}
numberUsed = index;
}
マイ入力:
This program reads in an array and scans for duplicate elements.
Enter the array:
Enter up to 20 nonnegative whole numbers.
Mark the end of the list with a negative number.
1 1 3 5 -1
マイ出力:
1が発見された複製。重複1が見つかりました。重複1が見つかりました。重複1が見つかりました。重複1が見つかりました。重複1が見つかりました。重複1が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複1が見つかりました。重複1が見つかりました。重複1が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。重複した0が見つかりました。
ご覧のとおり、出力には重複した番号が表示されていません。私はループと関係があると思うが、デバッグ方法はわからない。誰かが私に啓発をして、なぜコードが読み込み配列の重複要素を表示していないのでしょうか?どんな助けもありがとうございます。ありがとう!
、危険なのですか? 'numberUsed'で十分ではないでしょうか? (5要素配列の場合は20メッセージを表示しないようにします)。また、あなたの関数には奇妙な名前があります: 'deleteRepeats'という名前ですが、実際には何も削除しません... –