AD

Contare i numeri pari e dispari in un array o vettore in C

In questa pagina vedremo come creare un programma in C in grado di contare il numero di numeri pari e di numeri dispari contenuti all’interno di un array, o vettore.

Per poter procedere abbiamo innanzitutto bisogno di un array contenente una collezione di numeri. Per far ciò, abbiamo due possibilità:

  • possiamo definire, a priori, un array all’interno del programma e inizializzarlo con dei numeri durante la dichiarazione

  • oppure far riempire l’array da un utente usando la tastiera oppure generando numeri casuali

Nota: al termine della spiegazione verranno mostrati entrambe le possibilità.

Definito l’array, possiamo proseguire con la definizione del resto del codice. In particolare, per contare i numeri pari e dispari contenuti all’interno del array, dobbiamo scorrere l’interno array e verificare se ciascun valore è pari o dispari.

Per scorrere l’array facciamo uso di un ciclo for, chiaramente il programma può anche essere scritto in maniera analoga usando i cicli while o do while. L’importante è che ad ogni iterazione del ciclo venga verificato se il numero, che si trova nella posizione indicata dal numero di iterazione, è un numero pari o dispari. Per verificare tale caratteristica usiamo un'istruzione if per determinare se il numero diviso da due da resto zero, nello specifico questo viene ottenuto usando l’operatore di divisione con modulo %, effettuando un controllo del tipo num[i]%2==0.

In questo modo possiamo contare i numeri pari e dispari contenuti nell’array, in particolare, se il numero risulta essere pari, allora incrementiamo la variabile creata per tenere conto del numero di valori pari, mentre se l’istruzione if non è soddisfatta, incrementiamo la variabile contenente il numero di valori dispari.

Al termine dell’esecuzione del ciclo, nelle due variabili "pari" e "dispari" saranno immagazzinati rispettivamente il numero di valori pari e di valori dispari contenuti all’interno dell’array specificato. A questo punto non resta che stampare a schermo i due valori ottenuti.

Di seguito viene riportato il codice del programma usando un array già predefinito.

#include <stdio.h> #define DIM 10 int main(){     int num[DIM] = {2, 6, 7, 3, 8, 9, 3, 0, 5, 1};     int pari, dispari;     pari = 0;     dispari = 0;     for(int i = 0; i < DIM; i++){         if(num[i] % 2 == 0)             pari++;         else             dispari++;     }          printf("Nell'array ci sono: \n");     printf("- %d numeri pari\n", pari);     printf("- %d numeri dispari\n", dispari);     return 0; } /* Output: Nell'array ci sono:  - 4 numeri pari - 6 numeri dispari */

Mentre di seguito viene riportato il codice del programma in C che chiede all’utente di inserire i valori da tastiera.

#include <stdio.h> #define DIM 10 int main(){     int num[DIM];     int pari, dispari;     pari = 0;     dispari = 0;     for(int i = 0; i < DIM; i++){         printf("Inserisci numero: ");         scanf("%d", &num[i]);     }     for(int i = 0; i < DIM; i++){         if(num[i] % 2 == 0)             pari++;         else             dispari++;     }     printf("Nell'array ci sono: \n");     printf("- %d numeri pari\n", pari);     printf("- %d numeri dispari\n", dispari);     return 0; }