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;
}
Indice pagine di c
Indice cPagine aggiunte di recente
Indice pagine del linguaggio C: Funzioni, Stringhe, ArrayCome effettuare la radice quadrata con la funzione sqrt in CCome ottenere il valore assoluto con la funzione abs in CCome generare numeri casuali con la funzione rand in CCome generare numeri casuali tra due numeri in C