• Domingo 28 de Abril de 2024, 18:55

Autor Tema:  Programa Cuenta Dígitos y los Invierte  (Leído 3464 veces)

AdolfoC

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Programa Cuenta Dígitos y los Invierte
« en: Lunes 7 de Diciembre de 2009, 20:09 »
0
Hola a todos!!!!

He finalizado un programilla simple que dada una entrada numérica (enteros) por teclado, indica la cantidad de dígitos del número introducido e invierte la posición de los mismos. La compilación funciona bien, pero durante la ejecución es como si se quedara bloqueado contínuamente en un bucle, sin embargo no veo el porqué del problema. Os pego el código, a ver si un alma caritativa me dice que ocurre, porque soy incapaz de ver el problema....muchas gracias por adelantado!!!!

#include <stdio.h>
#include <math.h>


int invertidor(int num);    //Declaración de la función que es llamada en el programa principal para realizar la inversión del número//

int main()                  //Programa principal que cuenta los dígitos y efectua la inversión mediante llamada a función//
{
    int n;
    int dig;

    printf("nIntroduzca un numero: ");
    scanf("%dn",&n);
    dig=log10(n)+1;        //Cálculo matemático para obtener la cantidad de dígitos del número//
    printf ("El numero %d tiene %d digitos.n", n, dig);
    printf("nEl numero %d al reves es: %dn",n, invertidor(n));
    return 0;
    system ("pause");      //Necesario para visualizar el programa hasta el final en ciertos compiladores//
}

int invertidor(int num)    //Funcion que efectua la inversion y devuelve el número invertido//
{  
   int pos=0;
   while(num>0)            //Bucle para realizar la operación hasta alcanzar el valor cero//
   {
    pos=(pos*10)+(num%10); //Cálculo matemático para invertir un número que entre en la función//
    num=num/10;
   }
   return(pos);
}

player_

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Programa Cuenta Dígitos y los Invierte
« Respuesta #1 en: Martes 8 de Diciembre de 2009, 01:05 »
0
printf("nIntroduzca un numero: ");
scanf("%dn",&n);

Elimina ese n de dentro del scanf y ya no te pasará eso. Y al final, primero va system("PAUSE") (necesitarás la librería stdlib.h) y luego return 0;