Discussione chiusa
Visualizzazione dei risultati da 1 a 5 su 5

Discussione: esercizio elimina duplicati

  1. #1
    ylenia987654321 non è in linea Novello
    Post
    2

    esercizio elimina duplicati

    ciao ragazzi, ho un problema con un esercizio di c++
    comando: inserire nel vettore B i valori del vettore A senza duplicati (nel caso ci fossero inserire il valore solo una volta). non è possibile usare altri vettori oltre ad A e B
    ho provato a farlo ma esce soltanto il duplicato ad esempio se inserisco 1,2,1,3,4 viene fuori solo il valore 1 e non 2,3,4.
    vi allego il codice che ho fatto
    codice:
    #include <iostream>
    #define DIM 5
    using namespace std;
    int main()
    {
    	int a[DIM], b[DIM], i, j, cont, k;
    	for (i = 0; i < DIM; i++)
    	{
    		cin >> a[i];
    	}
    	k = 0;
    	for (i = 0; i < DIM; i++)
    	{
    		cont = 0;
    		for (j = i+1; j < DIM; j++)
    		{
    			if (a[i] == a[j])
    			{
    
    				cont++;
    			}
    		}
    		if (cont > 0)
    		{
    			b[k] = a[i];
    			k++;
    		}
    	}
    	return 0;
    }

  2. #2
    Ferrari_and non è in linea Scolaretto
    Post
    173
    Ciao,
    la tua routin ti cerca solo i valori duplicati del Vettore A

    L'alternativa è avere scorrere il vettore A e per ogni posizione di A cercare in tutto B se esiste lo stesso valore in caso negativo inserire il valore di a in B.

    Esistono molti altri metodi ma questo dovrebbe essere il più semplice da scrivere in un codice (non il più efficace).

  3. #3
    ylenia987654321 non è in linea Novello
    Post
    2
    Quote Originariamente inviato da Ferrari_and Visualizza il messaggio
    Ciao,
    la tua routin ti cerca solo i valori duplicati del Vettore A

    L'alternativa è avere scorrere il vettore A e per ogni posizione di A cercare in tutto B se esiste lo stesso valore in caso negativo inserire il valore di a in B.

    Esistono molti altri metodi ma questo dovrebbe essere il più semplice da scrivere in un codice (non il più efficace).
    ma il vettore B è vuoto, cioè devo inserire i valori del vettore A dopo averli analizzati no?

  4. #4
    Ferrari_and non è in linea Scolaretto
    Post
    173
    Inizialmente si Il vettore B deve essere vuoto si riempirà un po alla volta.
    cicla tutto il vettore A.

    dentro questo ciclo scorri tutti gli elementi che hai già inserito in B se nessuno è = a[i] allora inserisci l'elemento in B

    Ad ogni ciclo di A B potrebbe a aumentare di una unità

    Al primo ciclo B non ha elementi quindi lo inserisci
    Al secondo controlli che il valore non sia già nei primi n valori di B (dove n = 1 o 0 a seconda dell'indice iniziale ) se va bene lo inserisci e aumenti N di 1
    Il terzo ciclo controlli che il valore non sia già nei primi n valori di B se va bene lo inserisci e aumenti N di 1
    Fino ad arrivare alla fine del vettore A

  5. #5
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,614
    Blogs
    5
    Chiuso per crossposting con iprogrammatori.

    Leggi il regolamento.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

Discussione chiusa

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi