PDA

View Full Version : [c] problema col ciclo while


st3fan
05-01-2008, 11:23
ciao a tutti.Sto cercando di imparare a programmare in C
Ho trovato sul libro su cui studio 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.

nongio
05-01-2008, 11:34
perchè devi dare un valore a numero prima di poter confrontare se è diverso da 0 nel while...

stdecden
05-01-2008, 11:43
Si, ma in tal caso devi usare il ciclo do-while

do
{
<istruzioni da eseguire all'interno del ciclo>
}while (condizione)

che esegue le istruzioni almeno una volta

st3fan
05-01-2008, 12:25
perchè devi dare un valore a numero prima di poter confrontare se è diverso da 0 nel while...

Chiedo scusa se continuo a non capire bene.
Ora non capisco per quale motivo dentro il ciclo while viene ripetuto:

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

ossia per quale motivo nel ciclo while viene richiesto novamente all'utente di dare un valore (da tastiera) a "numero".

Grazie ancora.

@stdecden: per carità, faccio gia' fatica a imparare il ciclo while, figurati se mi metto a usare il do while :)....grazie comunque. Ciao

stdecden
05-01-2008, 12:30
Ora non capisco per quale motivo dentro il ciclo while viene ripetuto:

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

Semplicemente perché il tuo programma somma tutti i numeri che dai come input e inserendo 0, stampa il risultato e abbandona il programma. Quindi per esempio:
inserisci un numero 3
inserisci un numero 2
inserisci un numero 3
inserisci un numero 0
la somma e' 8