Come contare i numeri positivi e negativi in C
Nella seguente pagina viene spiegato come creare un programma in C in grado di chiedere all’utente di inserire dei numeri interi e di contare quanti di questi numeri sono positivi, negativi o nulli.
Il programma può essere strutturato in due maniere in base a come si vuole gestire l’input da tastiera. Nel primo modo possiamo definire a priori una costante che indica il numero massimo di valori che l’utente potrà inserire, mentre nel secondo modo possiamo dare piena autonomia all’utente, permettendogli di inserire quanti numeri desidera.
In questo esercizio verrà utilizzato il primo metodo, ovvero definiamo una costante N che indicherà quanti numeri l’utente dovrà inserire.
Per contare quanti numeri inseriti da tastiera sono positivi o negativi, dichiariamo due variabili intere pos e neg, e le inizializziamo a zero.
A questo punto possiamo utilizzare un ciclo per chiedere, in maniera ripetuta, all’utente di inserire un valore da tastiera. In questo caso è stato deciso di utilizzare un ciclo for, ma si possono ottenere gli stessi risultati utilizzando un ciclo while o do while.
Per ricevere in input i numeri da parte dell’utente, facciamo uso della funzione scanf ed immagazziniamo temporaneamente il valore in una variabile intera denominata num. Prima del termine dell’attuale iterazione del ciclo, verifichiamo se il numero inserito è positivo o negativo, ovvero controlliamo con l’istruzione if else, se il valore è maggiore (num > 0) o minore (num < 0) di zero.
Nota: scrivendo il codice in questa maniera, se l’utente inserisce il valore 0, esso non verrà conteggiato né come positivo né come negativo, ma questa casistica verrà gestita nella parte finale del codice.
Verificato che il numero sia maggiore o minore di zero, incrementiamo di 1 la rispettiva variabile, in modo da contare quanti numeri siano positivi o negativi.
Al termine del ciclo for, avremo che le variabili pos e neg, conterranno il conteggio dei, rispettivamente, numeri positivi e numeri negativi. A questo punto basta utilizzare la funzione printf per stampare a schermo i valori contati.
Dato che conosciamo il numero di valori inseriti (cioè N), possiamo fare una semplice sottrazione per ottenere il numero di valori nulli inseriti (N - pos - neg).
#include <stdio.h>
#define N 10
int main(){
int num, pos, neg;
pos=0;
neg=0;
for(int i = 0; i < N; i++){
printf("Inserisci numero intero: ");
scanf("%d", &num);
if(num > 0)
pos++;
else if(num < 0)
neg++;
}
printf("Hai inserito: \n");
printf("- %d numeri positivi\n", pos);
printf("- %d numeri negativi\n", neg);
printf("- %d numeri nulli\n", N-pos-neg);
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