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 numero è maggiore (num > 0) o minore (num < 0) di zero.

Nota: scrivendo il codice in questa maniera, il numero 0 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.

Inoltre, dato che conosciamo il numero di valori inseriti (cioè N), possiamo fare una semplice sottrazione per ottenere anche 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 linguaggio C: