PDA

Visualizza la versione completa : [c] problema col ciclo while


allegria256
05-01-2008, 12:58
ciao a tutti.
ho trovato sul libro questo programma:

#include<stdio.h>
int main()
{
int somma,numero;
printf("inserisci un numero");
scanf("%d",&numero);
somma=0;
while(numero!=0)
{somma=somma+numero;
printf("inserisci un numero");
scanf("%d",&numero);
}
printf("la somma e' %d",somma);
getch();
}

qualcuno mi sa spiegare perchè prima del ciclo while c'è scritto

printf("inserisci un numero");
scanf("%d",&numero);

non basta inserirlo nel ciclo while?

Grazie,
d.

MacApp
05-01-2008, 14:13
Se lo togli, il valore di "numero" sarebbe indefinito e se lo inizializzassi a zero, neppure entrerebbe nel ciclo.
In ogni modo, in questi casi, sarebbe meglio utilizzare il "do{...}while(...);":



//
// Compiled and tested with:
// i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5465)
//

#include<stdio.h>

int main()
{
int somma,numero;
somma=0;
numero=0;
do{
somma=somma+numero;
printf("inserisci un numero intero (0 per uscire): ");
scanf("%d",&numero);
}while(numero!=0);
printf("la somma e' %d;\n",somma);
return 0;
}

allegria256
05-01-2008, 14:35
Originariamente inviato da MacApp
Se lo togli, il valore di "numero" sarebbe indefinito e se lo inizializzassi a zero, neppure entrerebbe nel ciclo.
In ogni modo, in questi casi, sarebbe meglio utilizzare il "do{...}while(...);":



//
// Compiled and tested with:
// i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5465)
//

#include<stdio.h>

int main()
{
int somma,numero;
somma=0;
numero=0;
do{
somma=somma+numero;
printf("inserisci un numero intero (0 per uscire): ");
scanf("%d",&numero);
}while(numero!=0);
printf("la somma e' %d;\n",somma);
return 0;
}


Grazie. Anche se continuo a non capire bene il programma fattto col while ho capito quello che mi hai suggerito con il do-while.

Loading