Video: Corso di Programmazione Intermedia C - Lezione 1 (Vettori) 2024
Un array nel linguaggio di programmazione C è una serie di variabili dello stesso tipo: una dozzina di variabili int, due o tre variabili doppie o una stringa di variabili char. L'array non contiene tutti gli stessi valori. No, assomiglia più a una serie di cubicoli in cui si attaccano valori diversi.
Un array è dichiarato come qualsiasi altra variabile. È dato un tipo e un nome e quindi anche un insieme di parentesi quadre. La seguente dichiarazione dichiara l'array di punteggi migliori:
int highscore [];
Questa dichiarazione è incompleta; il compilatore non sa ancora quanti elementi, o elementi , sono nell'array. Quindi, se l'array di punteggi migliori dovesse contenere tre elementi, sarebbe dichiarato in questo modo:
int highscore [3];
Questo array contiene tre elementi, ognuno dei quali ha il proprio valore int. Si accede agli elementi in questo modo:
punteggio [0] = 750; punteggio [1] = 699; punteggio [2] = 675;
Un elemento di matrice viene fatto riferimento dal suo numero di indice tra parentesi quadre. Il primo elemento è l'indice 0, che è qualcosa che devi ricordare. In C, inizi a contare a 0, che ha i suoi vantaggi, quindi non pensare che sia stupido.
Nell'esempio precedente, al primo elemento dell'array, highscore [0], viene assegnato il valore 750; il secondo elemento, 699; e il terzo, 675.
Dopo l'inizializzazione, viene usata una variabile array come qualsiasi altra variabile nel codice:
var = highscore [0];
Questa istruzione memorizza il valore dell'elemento della serie highscore [0] nella variabile var. Se highscore [0] è uguale a 750, var è uguale a 750 dopo l'esecuzione dell'istruzione.
HIGH SCORES, THE AWFUL VERSION
#include int main () {int highscore1, highscore2, highscore3; printf ("Il tuo punteggio più alto:"); scanf ("% d", & highscore1); printf ("Il tuo secondo punteggio più alto:"); scanf ("% d", & highscore2); printf ("Il tuo terzo punteggio più alto:"); scanf ("% d", & highscore3); puts ("Ecco i tuoi punteggi migliori"); printf ("# 1% dn", highscore1); printf ("# 2% dn", highscore2); printf ("# 3% dn", highscore3); return (0);}
Exercise 1 : Riscrivi il codice sorgente da High Scores, Awful Version, aggiungendo un quarto punteggio elevato e usando un array - ma tieni a mente che l'array contiene quattro valori, non tre.
Esistono molte soluzioni per l'Esercizio 1. La soluzione forza-bruta ti fa riempire ogni variabile dell'array singolarmente, riga dopo riga, in modo simile al codice sorgente in High Scores, la Awful Version. Una soluzione migliore e più perspicace è offerta in High Scores, una versione migliore.
HIGH SCORES, UNA VERSIONE MIGLIORE
#include int main () {int highscore [4]; int x; for (x = 0; x <4; x ++) {printf ("Il tuo #% d punteggio:", x + 1); scanf ("% d", & highscore [x]);} puts ("Ecco i tuoi punteggi migliori"); for (x = 0; x <4; x ++) printf ("#% d% dn", x + 1, punteggio [x]); return (0);}
La maggior parte del codice da High Scores, una versione migliore dovrebbe essere familiare, anche se la nuova notazione array.Gli argomenti x + 1 nelle istruzioni printf () (Righe 10 e 16) consentono di utilizzare la variabile x nel ciclo ma visualizzano il suo valore a partire da 1 invece di 0. Sebbene C voglia iniziare la numerazione a 0, gli umani preferiscono ancora a partire da 1.
Esercizio 2 : Digita il codice sorgente da High Scores, una versione migliore nel tuo editor e crea un nuovo progetto. Eseguirlo.
Sebbene l'output del programma sia più o meno lo stesso dell'output 1, il metodo è molto più efficiente, come dimostrato dall'esercizio 3:
Esercizio 3 : Modifica il codice sorgente da High Scores, una versione migliore in modo che i primi dieci punteggi siano inseriti e visualizzati.
Immagina come dovresti codificare la risposta all'esercizio 3 se scegli di non usare gli array!
-
Il primo elemento di un array è 0.
-
Quando si dichiara un array, utilizzare il numero completo di elementi, ad esempio 10 per dieci elementi. Anche se gli elementi sono indicizzati da 0 a 9, è comunque necessario specificare 10 quando si dichiara la dimensione dell'array.