はじめに
この実験では、C++ プログラミング言語を使って、与えられた配列に重複する要素があるかどうかを判断する方法を学びます。これは、配列をソートしてから、隣接する要素を等しいかどうかで比較することで達成されます。
この実験では、C++ プログラミング言語を使って、与えられた配列に重複する要素があるかどうかを判断する方法を学びます。これは、配列をソートしてから、隣接する要素を等しいかどうかで比較することで達成されます。
ライブラリとメイン関数を以下のように書きます。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
bool containsDuplicate(int n[], int m)
{
// 重複があることを示すフラグを作成する
int f = 0;
// 重複をチェックするために入力配列をソートする
sort(n, n + m);
for (int i = 0; i < m - 1; i++)
{
if (n[i] == n[i + 1])
{
// 重複が見つかった場合、フラグを1に設定してループを抜ける
f = 1;
break;
}
}
if (f == 1) {
// 重複が見つかった
return true;
}
else {
// 重複は見つからなかった
return false;
}
}
int main()
{
cout << "\n\nWelcome to LabEx :-)\n\n\n";
cout << " ===== 入力配列に重複があるかどうかをチェックするプログラム ===== \n\n";
int i, n1, n2;
int a1[] = {2, 3, 1, 4, 5, 2, 8, 9};
int a2[] = {2, 3, 1, 4, 5, 10, 8, 9};
bool duplicate1 = false;
bool duplicate2 = false;
// 2つの入力配列のサイズを取得する
n1 = sizeof(a1) / sizeof(a1[0]);
n2 = sizeof(a2) / sizeof(a2[0]);
// 最初の入力配列を表示する
cout << "\n\n最初の入力配列の要素は :\n\n";
for (i = 0; i < n1; i++)
{
cout << a1[i] << " ";
}
// 最初の入力配列に重複があるかどうかをチェックする
duplicate1 = containsDuplicate(a1, n1);
if (duplicate1) {
cout << "\n\n最初の入力配列に重複があります";
}
else {
cout << "\n\n最初の入力配列には重複はありません";
}
// 2番目の入力配列を表示する
cout << "\n\n\n\n2番目の入力配列の要素は :\n\n";
for (i = 0; i < n2; i++)
{
cout << a2[i] << " ";
}
// 2番目の入力配列に重複があるかどうかをチェックする
duplicate2 = containsDuplicate(a2, n2);
if (duplicate2) {
cout << "\n\n2番目の入力配列に重複があります";
}
else {
cout << "\n\n2番目の入力配列には重複はありません";
}
cout << "\n\n\n";
return 0;
}
コードを ~/project/main.cpp
ファイルに保存し、以下のコマンドを使ってコードをコンパイルします。
g++ main.cpp -o main &&./main
配列内の重複をチェックするために、まず containsDuplicate()
という関数を作成しました。この関数は2つの引数を取ります。入力配列 n[]
とそのサイズ m
です。
この関数は、重複が見つかると値 1
で、そうでなければ値 0
でフラグを立てます。重複を見つけるために、入力 n[]
はまずシステム定義の sort()
関数を使ってソートされます。その後、ソートされた配列の隣接する要素が比較され、重複が見つかるとフラグが設定されます。
メイン関数では、それぞれ潜在的な重複を持つ2つのテスト配列 a1
と a2
が作成されます。containsDuplicate()
を使って、各配列に重複があるかどうかをチェックし、結果を出力します。
if (duplicate1) {
cout << "\n\nThe first input array contains duplicate";
}
else {
cout << "\n\nThe first input array does not contain any duplicate";
}
この出力は、入力配列に重複があるかどうかを示します。
C++ プログラミングを使えば、配列内の重複を簡単に判断できます。入力配列をソートしてから隣接する要素を比較することで、重複する値を示す効率的なフラグ付けシステムを開発できます。