Inserimento numeri in un array

di il
11 risposte

Inserimento numeri in un array

Ciao a tutti, sto studiando da poco questo linguaggio di programmazione il C.

Non riesco a capire come posso inserire dei numeri dentro un array tramite tastiera.
Ad esempio, devo inserire 10 numeri da input e metterli in un array di 10 elementi.

Potrei vedere qualche esempio per favore?
Grazie

11 Risposte

  • Re: Inserimento numeri in un array

    Ciao, è piuttosto semplice:

    - dichiari un array con 10 celle
    - fai un ciclo for con la "i" (variabile del ciclo) che arriva fino a 10 (cioè i<10)
    - memorizzi il numero che leggi nella cella corrispondente dell'array, quindi tuo_array

    Prova a buttare giù il codice, poi lo guardiamo insieme.
  • Re: Inserimento numeri in un array

    minomic ha scritto:


    Ciao, è piuttosto semplice:

    - dichiari un array con 10 celle
    - fai un ciclo for con la "i" (variabile del ciclo) che arriva fino a 10 (cioè i<10)
    - memorizzi il numero che leggi nella cella corrispondente dell'array, quindi tuo_array

    Prova a buttare giù il codice, poi lo guardiamo insieme.

    Ho sicuramente sbagliato, mi dispiace per il disturbo, però sono alle prime armi.

    #include <stdio.h>
    main()
    {
    int array[10];
    int i;

    for (i=0; i<10; i++)
    {
    printf("Inserisci un numero :\n");
    scanf("%d",array);
    }
    return 0;
    }
  • Re: Inserimento numeri in un array

    Bravo, c'eri vicinissimo!
    La scanf come secondo argomento vuole l'indirizzo della variabile nella quale deve scrivere. Questo si ottiene semplicemente mettendo una & davanti al nome della variabile. Quindi il codice diventa
    
    #include <stdio.h>
    int main()
    {
        int array[10];
        int i;
    
        for (i=0; i<10; i++)
        {
            printf("Inserisci un numero :\n");
            scanf("%d", &array[i]);
        }
        return 0;
    }
    
  • Re: Inserimento numeri in un array

    minomic ha scritto:


    Bravo, c'eri vicinissimo!
    La scanf come secondo argomento vuole l'indirizzo della variabile nella quale deve scrivere. Questo si ottiene semplicemente mettendo una & davanti al nome della variabile. Quindi il codice diventa
    
    #include <stdio.h>
    int main()
    {
        int array[10];
        int i;
    
        for (i=0; i<10; i++)
        {
            printf("Inserisci un numero :\n");
            scanf("%d", &array[i]);
        }
        return 0;
    }
    
    Ah che stupido non me ne sono accorto, la ringrazio mi è stato di grande aiuto .
    Se volessi mettere un controllo che mi dica che in quel vettore c'è già un numero inserito, cosa dovrei fare?
    Utilizzare un if ed inserendo quale condizione?
  • Re: Inserimento numeri in un array

    pino85 ha scritto:


    Se volessi mettere un controllo che mi dica che in quel vettore c'è già un numero inserito, cosa dovrei fare?
    Intendi dire che vuoi controllare se una cella è già occupata? Questo non è così semplice: un valore c'è comunque, anche appena l'array viene dichiarato. Semplicemente non sai di preciso cosa c'è (viene chiamato garbage, cioè spazzatura casuale). Quindi non esiste la situazione in cui una cella è vuota. Invece puoi dire che è vuota per te... Nel senso che non contiene un valore interessante per il problema che stai affrontando. Puoi gestire questa cosa in modo semplice: dopo averlo dichiarato, inizializzi tutte le celle dell'array ad un valore convenzionale che per te significa "vuoto" (ad esempio -1). A questo punto una cella è vuota se contiene quel particolare valore, e il controllo diventa un semplice if.
  • Re: Inserimento numeri in un array

    minomic ha scritto:


    pino85 ha scritto:


    Se volessi mettere un controllo che mi dica che in quel vettore c'è già un numero inserito, cosa dovrei fare?
    Intendi dire che vuoi controllare se una cella è già occupata? Questo non è così semplice: un valore c'è comunque, anche appena l'array viene dichiarato. Semplicemente non sai di preciso cosa c'è (viene chiamato garbage, cioè spazzatura casuale). Quindi non esiste la situazione in cui una cella è vuota. Invece puoi dire che è vuota per te... Nel senso che non contiene un valore interessante per il problema che stai affrontando. Puoi gestire questa cosa in modo semplice: dopo averlo dichiarato, inizializzi tutte le celle dell'array ad un valore convenzionale che per te significa "vuoto" (ad esempio -1). A questo punto una cella è vuota se contiene quel particolare valore, e il controllo diventa un semplice if.
    No, non intendevo questo.
    Io dicevo, ad esempio se inserisco il numero 2 e dopo lo inserisco di nuovo il programma lo accetta, io vorrei fare in modo che appena inserisco di nuovo il numero 2 il programma faccia un controllo e visualizzi un messaggio per dirmi che quel numero è stato già inserito.
  • Re: Inserimento numeri in un array

    Ah ho capito. Allora puoi fare così: leggi il numero e lo memorizzi in una variabile temporanea. Poi fai un controllo dall'inizio del vettore fino alla posizione che stai cercando di riempire in questo momento: se non trovi il numero allora copi il valore della variabile temporanea nella cella dell'array e prosegui. Altrimenti scarti il numero e ne chiedi un altro.
  • Re: Inserimento numeri in un array

    minomic ha scritto:


    Ah ho capito. Allora puoi fare così: leggi il numero e lo memorizzi in una variabile temporanea. Poi fai un controllo dall'inizio del vettore fino alla posizione che stai cercando di riempire in questo momento: se non trovi il numero allora copi il valore della variabile temporanea nella cella dell'array e prosegui. Altrimenti scarti il numero e ne chiedi un altro.
    Al momento per me è troppo complicato. Proverò a farlo.
    Comunque come ho detto prima la ringrazio perchè mi è stato di grande aiuto
  • Re: Inserimento numeri in un array

    Prego e mi raccomando: diamoci del tu! Appena hai qualcosa da farmi vedere postalo pure che io o qualcun altro (anche molto più competente di me) lo guarda.
  • Re: Inserimento numeri in un array

    Domanda off topic : come mai i messaggi privati che spedisco vanno nella cartella messaggi in uscita?
    Grazie.
  • Re: Inserimento numeri in un array

    Perché ancora non lo avevo letto. Ora che l'ho letto vedrai che non c'è più.
Devi accedere o registrarti per scrivere nel forum
11 risposte