fbpx
Skip to main content

Esercizio esame programazione

Di più
17 Anni 7 Mesi fa #68697 da roberta dardis
Salve a tutti, stavo provando a fare questo esercizio di Fondamenti dell'esame dell'anno scorso:
Scrivere una funzione C++ che, dati due array di interi positivi a
e b, restituisce l’array c che si ottiene eliminando da a gli elementi che appaiono in b (si
suppone che gli array a e b non contengano elementi ripetuti).
Esempio: a={2,11,6,5,9}, e b={2,3,4,11,7,5}. La funzione restituisce c={6,9}.
Ora io non riesco a capire come posso confrontare i due array. Pensavo a due cicli for ma cosi facendo nell'array c andrebbero anche altri elementi che appaiono in a e b. Qualcuno ha qualche idea? Grazie

Si prega Accedi o Crea un account a partecipare alla conversazione.

Di più
17 Anni 7 Mesi fa #70169 da emanuele caracciolo
L'ho risolto, spero che sia abbastanza chiaro da capire, se non lo fosse chiedi pure!!!
#define DIM_A 5
#define DIM_B 6

#include <iostream>

using namespace std;

int controllo(int a[DIM_A], int b[DIM_B], int c[DIM_B]);

int main()
{
    int array1[]={2,11,6,5,9}, array2[]={2,3,4,11,7,5};
    int i = 0, risultato[DIM_B], dimensione_logica = 0;
    dimensione_logica = controllo(array1, array2, risultato);
    cout << "L'array risultante \x8a:\n";
    for (i = 0; i < dimensione_logica; i++)
        cout << risultato[i] << " ";
    cout << "\n";
    system ("pause");
    return 0;
}

int controllo(int a[DIM_A], int b[DIM_B], int c[DIM_B])
{
    int i = 0, j = 0, contatore = 0;
    bool trovato = false;
    for (i = 0; i <= DIM_A; i++)
    {
        trovato = false;
        j = 0;
        while (j <= DIM_B && !trovato)
        {
              if (a[i] == b[j])
                 trovato = true;
              j++;
        }
        if (trovato == false)
        {
                    c[contatore] = a[i];
                    contatore ++;
        }
    }
    return contatore - 1;
}

Si prega Accedi o Crea un account a partecipare alla conversazione.