Analizzare una sequenza di numeri con i vettori
PROBLEMA
Si scriva un programma per poter analizzare una sequenza di numeri. Dati N numeri interi letti da tastiera si vogliono calcolare e stampare su schermo diversi risultati:
- quanti sono i numeri positivi, nulli e negativi
- quanti sono i numeri pari e dispari
- e la sequenza dei numeri inseriti e crescente, decrescente oppure né crescente né decrescente.
CODICE SORGENTE
#include <stdio.h> //libreria
#include <stdlib.h>
void banner (int numeri_da_inserire) { //funzione
printf("-------------------------------\nAnalisi sequenza di %i numeri\n-------------------------------\n", numeri_da_inserire); //testo a video
} //fine funzione rig.11
int main(int argc, char *argv[]) { //inizio body del programma
int numeri_da_inserire=0, i=0, numero=0, positivi=0, negativi=0, neutri=0, pari=0, dispari=0, numero_base=0, decrescente=0, crescente=0; //dichiarazione variabili
printf("Inserire la quantita' di numeri da analizzare:"); //testo a video
scanf("%i", &numeri_da_inserire); //input
system("cls"); //pulire il terminale
for (i=0; i<numeri_da_inserire; i++) { //ciclo for
printf("Inserire il %i\370 numero:",i+1); //testo a video
scanf("%i", &numero); //input
if (numero>0) { //se è positivo
positivi++;
}
else if (numero<0) { //se è negativo
negativi++;
}
else { //se è neutro
neutri++;
}
if(numero%2==0) { //se è pari
pari++;
}
else { //se è dispari
dispari++;
}
if (i==0) { //assegna il numero base uguale al primo numero
numero_base=numero;
}
else if (numero_base<numero) { //se la sequenza è crescente
crescente=1;
numero_base=numero;
}
else if (numero_base>numero) { //se la sequenza è decrescente
decrescente=1;
numero_base=numero;
}
else if (numero_base==numero) { //se la sequenza non è nulla
crescente=1;
decrescente=1;
}
}
system("cls"); //pulire il terminale
banner(numeri_da_inserire); //richiamo funzione
printf("Positivi: %i\nNegativi: %i\nNeutri: %i\nPari: %i\nDispari: %i\nLa sequenza e' ",positivi, negativi, neutri, pari, dispari); //testo a video
if (decrescente==1 && crescente==0) { //se è decrescente
printf("decrescente\n");
}
else if (crescente==1 && decrescente==0) { //se è crescente
printf("crescente\n");
}
else {
printf("ne decrescente ne crescente\n"); //se è nulla
}
system("PAUSE");
return 0;
}