Oppure

Loading
22/10/14 15:59
Arat
Ciao a tutti, mi trovo davanti a questo problema che in teoria è abbastanza banale, ma in pratica sto avendo non poche difficoltà a realizzarlo. In pratica ho un array di 10 elementi e devo chiedere all'utente di riempirlo. Inoltre, se un elemento è già presente devo stampare un errore e chiederlo nuovamente effettuando sempre il controllo.

Per esempio quello che avevo realizzato è il seguente codice:

#include <stdio.h>

int main()
{

    int vet[10] = {0}, i, j, ele, conta;

    printf("Elementi da utilizzare: ");
    scanf("%d", &ele);

    for (i=0; i < ele; i++) {
        printf("Inserisci elemento: ");
        scanf("%d", &vet[i]);
        conta = 0;
        for (j=0; j < ele; j++)
            if (vet[j] == vet[i]) {
                conta++;
            }
            if (conta > 1) {
                printf("Errore, inserisci nuovamente il valore: ");
                scanf("%d", &vet[i]);
                j = 0;
            }

    }

    return 0;
}


Il programma giustamente richiede il valore se è già presente, ma se una volta che me lo richiedo reinserisco lo stesso valore, me lo passa senza problemi.
Esempio:
Inserisci elemento: 2 OK
Inserisci elemento: 2 MI STAMPA ERRORE
Errore, inserisci nuovamente il valore: 2 MI DOVREBBE STAMPARE ERRORE MA MI ACCETTA IL DUE.


Come posso risolvere?
Grazie mille
Ultima modifica effettuata da Arat 22/10/14 16:00
aaa
22/10/14 16:39
pierotofy
Prova con:

for (j=0; j < ele; j++){
            if (vet[j] == vet[i]) {
                conta++;
            }
}
if (conta > 0) {
            printf("Errore, inserisci nuovamente il valore: ");
            i--;
}
Il mio blog: piero.dev
22/10/14 19:50
Arat
Grazie mille, così funziona. L'unica cosa è che bisogna cambiare conta > 0 a conta > 1 in quanto almeno una volta ci sarà una corrispondenza con se stesso.

Grazie ancora
aaa
22/10/14 20:33
pierotofy
Postato originariamente da Arat:
bisogna cambiare conta > 0 a conta > 1 in quanto almeno una volta ci sarà una corrispondenza con se stesso.


:k:
Il mio blog: piero.dev