Manugal
08-11-2005, 14:35
Ho scritto un programmino ricorsivo che mi stampa le cifre date in input in ordine inverso. Questo è il 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);
}
}
Il problema è che mi stampa anche 0 alla fine della sequenza (anche se io in input metto solo per dire 123.... lui mi stampa 3210). Il problema credo che sia nel caso base, ma non so come cambiarlo in maniera corretta. Chi mi può aiutare? Grazie.
#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);
}
}
Il problema è che mi stampa anche 0 alla fine della sequenza (anche se io in input metto solo per dire 123.... lui mi stampa 3210). Il problema credo che sia nel caso base, ma non so come cambiarlo in maniera corretta. Chi mi può aiutare? Grazie.