PDA

Visualizza la versione completa : Controllo su un intervallo di valori


hyena_73
21-09-2006, 17:22
Buonasera ragazzi, ho il listato che vedete qua sotto.
Ho gią fatto vari tentativi:sapreste dirmi dove inserisco un controllo e il codice giusto affinchč non consideri l'input per valori fuori dell'intervallo [1,100], lasciando inalterato il contatore?


/*Media tra 40 interi compresi tra 1 e 100 uso del for*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num, i, somma=0;
float media;

printf("Calcolo della media di 10 interi tra 1 e 100.\n\n");


for(i=1;i<=10;i++)
{
printf("numero: ");
scanf("%d", &num);
somma=somma+num;
}

printf("Somma= %d\n\n", somma);
media=(float)somma/10;
printf("Media= %.2f\n\n", media);

system("pause");
return 0;

}

newbie
21-09-2006, 17:34
Una possibilitą potrebbe essere quella di racchiudere le prime due righe dentro il ciclo in un


do
{
...
}
while(num < 1 || num > 100);

in modo che la richiesta riappaia fino a quando non si inserisce un numero valido.

:ciauz:

hyena_73
21-09-2006, 17:47
Ho messo il ciclo do-while prima del ciclo for,...in questo modo il controllo funziona,....ma quando va a fare la somma, si perde un dato di input! :rollo:

oregon
21-09-2006, 18:01
Scusa ... dove l'hai messo il do-while?

newbie
21-09-2006, 18:01
In realtą il ciclo andrebbe messo *dentro* il for:


for(i=1;i<=10;i++)
{
do
{
printf("numero: ");
scanf("%d", &num);
}
while(num < 1 || num > 100);
somma=somma+num;
}

printf("Somma= %d\n\n", somma);
media=(float)somma/10;
printf("Media= %.2f\n\n", media);

system("pause");
return 0;

}

hyena_73
21-09-2006, 18:08
Ora funzionissima :yuppi:
Grazie Newbie :D

newbie
21-09-2006, 18:15
Originariamente inviato da hyena_73
Ora funzionissima :yuppi:
Grazie Newbie :D

E' stato un piacere :D

Loading