ESERCIZI SUI WHILE E DO WHILE
ES 1
Scrivi un programma che chieda all’utente un numero intero positivo e stampi a video un conto alla rovescia fino a 0.
ES 2
Chiedi all’utente di inserire numeri interi. Il programma continua a chiedere numeri fino a quando l’utente inserisce 0. Alla fine stampa la somma di tutti i numeri inseriti (escluso lo zero).
ES 3
Il computer sceglie un numero casuale tra 1 e 100. L’utente deve indovinare il numero. Dopo ogni tentativo il programma dice se il numero da indovinare è più alto o più basso di quello inserito. Il ciclo termina quando l’utente indovina.
SOLUZIONI
#include <stdio.h>
#include <stdlib.h> // Per le funzioni rand() e srand()
#include <time.h> // Per la funzione time()
int main() {
/*
Esercizio 1 – Conto alla rovescia
Scrivi un programma che chieda all’utente un numero intero positivo e stampi a video un conto alla rovescia fino a 0.
*/
int secondi;
printf("inserisci secondi per conto alla rovescia\n");
scanf("%d", &secondi);
while(secondi > 0){
printf("%d...\n", secondi);
secondi--;
}
/*
Esercizio 2 – Somma fino a zero
Chiedi all’utente di inserire numeri interi. Il programma continua a chiedere numeri fino a quando l’utente inserisce 0.
Alla fine stampa la somma di tutti i numeri inseriti (escluso lo zero).
*/
int somma = 0;
int letto;
do{
printf("inserisci un numero\n");
scanf("%d", &letto);
somma += letto;
}while(letto != 0);
printf("somma: %d", somma);
/*
Esercizio 3 – Indovina il numero
Il computer sceglie un numero casuale tra 1 e 100. L’utente deve indovinare il numero. Dopo ogni tentativo il programma
dice se il numero da indovinare è più alto o più basso di quello inserito. Il ciclo termina quando l’utente indovina.
*/
// Inizializza il generatore di numeri casuali
// Questo assicura che venga generata una sequenza diversa ogni volta
srand(time(NULL));
// Genera un numero casuale tra 0 e 99 usando rand() % 100
// Aggiunge 1 per ottenere un intervallo da 1 a 100
int numeroCasuale = rand() % 100 + 1;
printf("--%d--\n", numeroCasuale);
int letto;
do{
printf("riesci a indovinare il numero?\n");
scanf("%d", &letto);
if(letto < numeroCasuale){
printf("troppo basso, riprova!\n");
}else if(letto > numeroCasuale){
printf("troppo alto, riprova!\n");
}
}while(letto != numeroCasuale);
printf("hai indovinato!!!");
return 0;
}