lucas87
19-11-2006, 13:59
Ho fatto un programma in C che mi inverte un numero:
esempio 123==321;
#include<stdio.h>
int inverti_numero(int);
int main(void)
{
int mp,cifra,m;
scanf("%d",&m);
inverti_numero(m);
printf("%d\n",inverti_numero(m));
while(getchar() != '\n');
printf("Premere INVIO per continuare...");
getchar();
}
int inverti_numero(int numero)
{
int mp,cifra;
mp=0;
cifra=0;
while(numero!=0)
{ cifra=numero%10;
mp=mp*10+cifra;
numero=numero/10;
}
return mp;
}
FUNZIONA.
Ora facendolo con ricorsione non ci riesco, sono arrivato a farlo così, ma invece di invertire il numero lo riscrive uguale. Capisco perchè me lo scrive uguale, ma non riesco a capire come farlo scrivere al rovescio.
#include<stdio.h>
int inverti_numero(int);
int main(void)
{
int m;
scanf("%d",&m);
printf("%d\n",inverti_numero(m));
while(getchar() != '\n');
printf("Premere INVIO per continuare...");
getchar();
}
int inverti_numero(int numero)
{
int cifra;
int mp;
cifra=0;
if(numero>=10){
cifra=numero%10;
mp=cifra*10+inverti_numero(numero/10);
return mp;
}
else return numero;
}
Chi mi da una mano
esempio 123==321;
#include<stdio.h>
int inverti_numero(int);
int main(void)
{
int mp,cifra,m;
scanf("%d",&m);
inverti_numero(m);
printf("%d\n",inverti_numero(m));
while(getchar() != '\n');
printf("Premere INVIO per continuare...");
getchar();
}
int inverti_numero(int numero)
{
int mp,cifra;
mp=0;
cifra=0;
while(numero!=0)
{ cifra=numero%10;
mp=mp*10+cifra;
numero=numero/10;
}
return mp;
}
FUNZIONA.
Ora facendolo con ricorsione non ci riesco, sono arrivato a farlo così, ma invece di invertire il numero lo riscrive uguale. Capisco perchè me lo scrive uguale, ma non riesco a capire come farlo scrivere al rovescio.
#include<stdio.h>
int inverti_numero(int);
int main(void)
{
int m;
scanf("%d",&m);
printf("%d\n",inverti_numero(m));
while(getchar() != '\n');
printf("Premere INVIO per continuare...");
getchar();
}
int inverti_numero(int numero)
{
int cifra;
int mp;
cifra=0;
if(numero>=10){
cifra=numero%10;
mp=cifra*10+inverti_numero(numero/10);
return mp;
}
else return numero;
}
Chi mi da una mano