|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
[C] Piccolo aiuto...
Ho scritto un programmino ricorsivo che mi stampa le cifre date in input in ordine inverso. Questo è il codice:
Codice:
#include <stdio.h> int numinvertito(int); int main(void){ int num; printf("Inserisci il numero: "); scanf("%d", &num); printf("%d", numinvertito(num)); return 0; } int numinvertito(int n){ int tmp; if(n==0) return n; else{ tmp=n%10; printf("%d", tmp); return numinvertito(n/10); } } |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Apr 2004
Messaggi: 130
|
Codice:
int numinvertito(int n) { if ((n / 10) == 0) return n; else { printf("%d", n % 10); return numinvertito(n / 10); } } |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Grazie posso sapere perché hai messo n/10 nel caso base?
Perfetto scusa ci sono arrivato ![]() Ultima modifica di Manugal : 08-11-2005 alle 15:10. |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Apr 2004
Messaggi: 130
|
Perche' tu vuoi ritornare l'ultima (cioe', la prima) cifra. Ma ero distratto: in effetti basta scrivere if (n < 10)...
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
|
Ciao,
Non so se hai problemi ad utilizzare le stringhe (in un paio di post precedenti la cosa era una sorta di "compito per casa" e non si potevano utilizzare le stringhe)... ad ogni modo per ribaltare un input (di qualsiasi genere... numerico/alfabetico o quant'altro) puoi: Invertire la stringa con strrev()... la lettura ovviamente con scanf("%s") o meglio con gets(). Scrivere una funzione che scorre la stringa all'inverso a partire da strlen()-1 fino ad arrivare a 0 e stampi via via il carattere n-esimo... Ci guadagni parecchio in calcoli... Ciaociao ![]()
__________________
Venite a visitarci qui:http://www.bottomap.com Bottomap is a proud Masterdrive.it moderator |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:44.