Contare i numeri pari e dispari contenuti 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.

Conteggio numeri pari e dispari con array definito a priori

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;
}


Nell'array ci sono: - 4 numeri pari - 6 numeri dispari

Conteggio numeri pari e dispari con array definito da utente

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;
}

Indice pagine linguaggio C: