Funzione con gli array

di il
7 risposte

Funzione con gli array

Salve a tutti,

ho un problema con un esercizio sugli array.
L'esercizio dice che dato un array di n interi, devo creare una funzione che stampi a video gli interi inseriti, ma solo una volta:

se ad esempio l'array è composto da 5 elementi: 1 3 5 1 6
la funzione deve stampare a video solo gli interi 1 3 5 6, in quanto l'1 è stato inserito più di una volta.
Io avevo provato a sviluppare un algoritmo, ma non ha avuto buon esito... voi come implementereste questa funzione?

P.S. Non so se in questo caso avrebbero potuto essere utili, ma NON si possono usare algoritmi di ordinamento

7 Risposte

  • Re: Funzione con gli array

    Potresti usare un array di appoggio in cui copiare i dati univoci e poi visualizzare i dati da questo array
  • Re: Funzione con gli array

    Se il vettore é dato, allora devi trovare un modo per segnati gli interi che stampi.
    Un vettore di struct dove segni preso non preso, oppure una hash table oppure ancora scandisci il vettore per eliminare i duplicati.
    Direi che ordinando il vettore sarebbe stato più semplice.
  • Re: Funzione con gli array

    Grazie ad entrambi, ma ho provato a risolverlo con un solo array e due cicli for annidati, e ci sono riuscito: ho introdotto una variabile booleana inizializzata a false; ho fatto il confronto tra i singoli elementi dell'array, e se 2 elementi risultavano uguali, la booleana diventava true. Alla fine del ciclo for interno, se la booleana era false, allora stampava l'elemento, altrimenti incrementava la variabile di controllo senza stampare niente.
    Probabilmente si è capito poco da come l'ho detto, ma comunque l'importante è che funzioni
  • Re: Funzione con gli array

    Ho il sospetto che possa non funzionare sempre ... mostra il codice ...
  • Re: Funzione con gli array

    oregon ha scritto:


    Ho il sospetto che possa non funzionare sempre ... mostra il codice ...
    Scusami ma sono abbastanza nuovo del forum: posso postarlo con pastebin?
  • Re: Funzione con gli array

    Ecco il codice:
    #include <iostream>
    using namespace std;
    
    void interi_multipli(int vettore[], const int numero_interi);
    //Post-condition: ritorna la stringa di interi non ripetuti tra tutti i valori presi in input
    
    const int n = 10;
    
    int main() {
    	int vet[n];
    	for(int i = 0; i < n; i = i + 1){
    
    		cout <<"Scrivi un numero intero:\n";
    		cin >> vet[i];
    
    	}
    	interi_multipli(vet, n);
    	return(0);
    }
    
    void interi_multipli(int vet[], const int n){
    
    	for (int i = 0; i < n; i = i + 1){
    
    		bool trovato_el = false;
    		for (int a = 0; a < i; a = a + 1){
    
    			if (vet[i] == vet[a]) trovato_el = true;
    
    
    		}
    		if (trovato_el == false /* ( = !trovato_el) */) cout << vet[i] << "\t";
    
    	}
    
    }
    
  • Re: Funzione con gli array

    Così va bene ...
Devi accedere o registrarti per scrivere nel forum
7 risposte