Ah
non me ne ero accorto, ho letto senza attenzione.
Ah
non me ne ero accorto, ho letto senza attenzione.
"Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)
"Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)
http://xvincentx.netsons.org/programBlog
Avevo pensato anche io ad una soluzione tipo suddivisione dell'intero per 10, ma non sono poi riuscito ad implementarla, potreste spiegarmi il funzionamento? Preciso che non sono proprio neofita ma quasi
Io pensavo a qualcosa del genere ...
codice:int intero, variabile; printf("inserisci un numero intero:\n"); scanf("%d", &intero); variabile=0; while(intero) { variabile *= 10; variabile += intero%10; intero /= 10; } printf("%d\n", variabile);
Proprio quello che cercavo, però quello che combina il ciclo while non m'è chiaro potresti delucidarmi in tal senso?Originariamente inviato da oregon
Io pensavo a qualcosa del genere ...
codice:int intero, variabile; printf("inserisci un numero intero:\n"); scanf("%d", &intero); variabile=0; while(intero) { variabile *= 10; variabile += intero%10; intero /= 10; } printf("%d\n", variabile);
Cosa non ti e' chiaro nel ciclo? Ci sono tre linee ...
La prima sposta a sinistra di una cifra il risultato, la seconda aggiunge al risultato l'ultima cifra a destra del numero originale, la terza sposta a destra di una cifra il numero originale.
Tutto finche' il numero originale e' diverso da zero.
Mettiamo che inserisca il numero 1234
il procedimento dovrebbe essere questo
var = 0
while(1234)
var = 0*10 -->0
var = 0 + 4--->4
intero = 123
e fin qui tutto ok. Al secondo passaggio
var = 4
var = 4 + 3 -->7 ?????
intero = 12
non m'è chiara la seconda riga del while al secondo passaggio e non m'è chiara la condizione di uscita dal ciclo. So che sicuramente sbaglierò ad interpretare qualcosa visto che il codice funge perfettamente. Grazie mille per la pazienza
Edit: Come non detto avevo saltato la moltiplicazione per 10![]()
con 1234
Al primo ciclo hai :
var=0*10=0
var=0+4=4
intero=123
Al seconto hai :
var=4*10=40
var=40+3=43
intero=12
al terzo :
var=43*10=430
var=430+2=432
intero=1
al quarto :
var=432*10=4320
var=4320+1=4321
intero=0
fine del ciclo
Sta tutto nel fatto che var viene moltiplicata per 10 ogni volta.
Ti ho risparmiato una spiegazione oregon![]()
ciao ciao![]()