Vérifier un tableau pour des doublons

C++Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, nous allons apprendre à déterminer si un tableau donné contient des doublons ou non, en utilisant le langage de programmation C++. Cela sera réalisé en triant le tableau, puis en comparant les éléments adjacents pour vérifier s'ils sont égaux.

Écrire la bibliothèque et la fonction principale

Écrivez la bibliothèque et la fonction principale comme suit.

#include <iostream>
#include <bits/stdc++.h>

using namespace std;

bool containsDuplicate(int n[], int m)
{
    // Créez un drapeau pour indiquer la présence d'un doublon
    int f = 0;

    // Triez le tableau d'entrée pour vérifier s'il y a des doublons
    sort(n, n + m);

    for (int i = 0; i < m - 1; i++)
    {
        if (n[i] == n[i + 1])
        {
            // mettez le drapeau à 1 et sortez de la boucle si un doublon est trouvé
            f = 1;
            break;
        }
    }

    if (f == 1) {
        // Doublon trouvé
        return true;
    }
    else {
        // Aucun doublon trouvé
        return false;
    }
}

int main()
{
    cout << "\n\nBienvenue à LabEx :-)\n\n\n";
    cout << " ===== Programme pour vérifier s'il y a des doublons dans le tableau d'entrée  ===== \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;

    // Obtenez la taille des deux tableaux d'entrée
    n1 = sizeof(a1) / sizeof(a1[0]);
    n2 = sizeof(a2) / sizeof(a2[0]);

    // Affichez le premier tableau d'entrée
    cout << "\n\nLes éléments du premier tableau d'entrée sont :\n\n";

    for (i = 0; i < n1; i++)
    {
        cout << a1[i] << "  ";
    }

    // Vérifiez si le premier tableau d'entrée contient des doublons
    duplicate1 = containsDuplicate(a1, n1);

    if (duplicate1) {
        cout << "\n\nLe premier tableau d'entrée contient des doublons";
    }
    else {
        cout << "\n\nLe premier tableau d'entrée ne contient pas de doublons";
    }

    // Affichez le second tableau d'entrée
    cout << "\n\n\n\nLes éléments du second tableau d'entrée sont :\n\n";

    for (i = 0; i < n2; i++)
    {
        cout << a2[i] << "  ";
    }

    // Vérifiez si le second tableau d'entrée contient des doublons
    duplicate2 = containsDuplicate(a2, n2);

    if (duplicate2) {
        cout << "\n\nLe second tableau d'entrée contient des doublons";
    }
    else {
        cout << "\n\nLe second tableau d'entrée ne contient pas de doublons";
    }

    cout << "\n\n\n";

    return 0;
}

Exécuter le code

Enregistrez le code dans le fichier ~/project/main.cpp, puis compilez le code en utilisant :

g++ main.cpp -o main &&./main

Comprendre le code

Pour vérifier s'il y a des doublons dans un tableau, nous avons tout d'abord créé une fonction appelée containsDuplicate(). Cette fonction prend deux arguments - le tableau d'entrée n[] et sa taille m. La fonction indique la présence de doublons avec la valeur 1, et dans le cas contraire avec la valeur 0. Pour trouver les doublons, le tableau d'entrée n[] est d'abord trié à l'aide de la fonction sort() définie par le système. Ensuite, les éléments adjacents dans le tableau trié sont comparés, et le drapeau est défini si des doublons sont trouvés. Dans la fonction principale, deux tableaux de test a1 et a2 sont créés, chacun avec un potentiel doublon. En utilisant containsDuplicate(), nous vérifions chaque tableau pour des doublons et affichons le résultat.

if (duplicate1) {
    cout << "\n\nLe premier tableau d'entrée contient des doublons";
}
else {
    cout << "\n\nLe premier tableau d'entrée ne contient pas de doublons";
}

Ce résultat indiquera si le tableau d'entrée contient des doublons ou non.

Résumé

Il est possible de déterminer facilement les doublons dans les tableaux en utilisant le langage de programmation C++. En triant le tableau d'entrée puis en comparant les éléments adjacents, il est possible de développer un système d'identification efficace pour indiquer les valeurs en double.