Serie non crescente
PROBLEMA
Leggere una serie di numeri interi passati dall’utente, fermandosi al primo numero che rende la serie non crescente e restituendo quanti numeri erano stati inseriti.
RAPPRESENTAZIONE TECNICO-ILLUSTRTIVA
Si richiede un numero da tastiera e se il conteggio è pari a 0 lo si associa a un numero base e si incrementa di 1 il conteggio, se invece il conteggio è diverso da 0, se il numero base è minore del numero inserito il numero di base diventa il numero inserito e si incrementa il conteggio di 1 altrimenti si mostra il conteggio e si assegna 0 al conteggio. Ripetere il tutto fin quando il conteggio non è 0.
TABELLA DATI
IDENTIFICATORE | DESCRIZIONE |
---|---|
Numero_inserito | Numero immesso di tipo intero variabile |
Numera_base | Numero precedente della sequenza di tipo intero variaible |
i | variabile conteggio di tipo intero variabile |
DIAGRAMMA A BLOCCHI
Clicca qui per visualizzare il Diagramma a blocchi.
CODICE SORGENTE
#include //libreria
#include //libreria
int main(int argc, char *argv[]) {
int numero_inserito=0, numero_base=0, i=0; //dichiarazione variabilio
printf("\1 Inserire una serie di numeri, il programma si fermer\240 al primo numero che interromper\240 la serie crescente"); //testo a video \1 server per una faccia felice, \240 server per la a accentata
sleep(4); //attesa di 4 secondi
do { //inizio ciclo do-while
system("cls"); //cancellazione messaggi precedenti
printf("inserire il %i\247 numero:", i+1); //testo a video \247 serve per il simbolo speciale
scanf("%i", &numero_inserito); //in-put da tastiera
if (i==0) //condizione
{
numero_base=numero_inserito; //assegnazione
i++; //incremento di 1
}
else if (numero_base {
numero_base=numero_inserito; //assegnazione
i++; //incremento di 1
}
else
{
system("cls"); //cancellazione messaggi precedenti
printf("Numeri totali inseriti:%i\n", i); //messaggio a video
i=0; //assegnazione
}
} while(i!=0); //fine ciclo do while rig.10
system("PAUSE"); //premi un tasto per continuare
return 0; //tutto OK
}