Inserire i dati in un vettore senza ammettere duplicati

di il
1 risposte

Inserire i dati in un vettore senza ammettere duplicati

Ciao a tutti, dovrei fare un piccolo programmino in C che mi permetta di riempire un vettore vuoto con dei numeri nuovi. Il programma però non deve permettere l'inserimento di un dato già presente nel vettore (non deve quindi accettare duplicati).

Avevo pensato a un qualcosa del genere ma è c'è qualche errore con i cicli:

int i, j, n, v[3];
	
	for(i=0;i<3;i=i+1){
		printf("Inserire un numero: ");
		scanf("%d", &n);
		/*v[i]=n;*/
		for(j=0;j<3;j=j+1){
			if(v[j]!=n){
				v[j]=n;
			}else{
				while(v[j]=n){
					printf("Reinserire il numero: ");
					scanf("%d", &n);
				}
			}
			v[j]=n;
		}
		v[i]=v[j-1];
	}
Mi potreste dare qualche suggerimento come modificare il codice affinchè funzioni? Grazie in anticipo.

1 Risposte

  • Re: Inserire i dati in un vettore senza ammettere duplicati

    Compilandolo appare subito evidente un errore nella condizione del while
    while(v[j]=n)
    che dovrebbe essere
    while(v[j]==n)
    Fatto ciò il programma sembri funzionare anche se la logica è molto contorta.

    Io ti consiglierei questa:
    con un ciclo for che scorre il vettore acquisisci i numeri da inserire, volta per volta il numero inserito lo confronti con quelli già inseriti precedentemente con un altro ciclo quindi che va da 0 a i (escluso). Se il ciclo arriva fino ad i-1 senza trovare duplicati allora puoi inserire questo numero altrimenti no e richiedi l'inserimento di nuovo.
Devi accedere o registrarti per scrivere nel forum
1 risposte