[ Foro de C ]

Formatear números(urgente pls)

01-Dec-2020 22:16
Marcos Pimentel Serra
2 Respuestas

Buenas!
Necesito crear un programa que me inserte puntos de millar en números para mostrar en pantalla. Es decir, que el número 12345678 salga como 12.345.678. Para ello tengo obligación de utilizar una función del tipo void formatea_numero(long int). Sospecho que hay que hacer paso por referencia con esta función pero no estoy seguro. Sé que en el programa hay que utilizar arrays, pero no sé de qué manera; y también tengo la obligación de NO utilizar cualquier instrucción de la librería string.h.
Me corre un poco de prisa. Así que agradezco mucho toda ayuda.
Gracias de antemano!


08-Dec-2020 23:24
Invitado (jose)

si no pones tu código no te puedo ayudar, otra cosa es que quieras que te hagamos el tu trabajo

suerte ;-)


09-Dec-2020 01:02
Invitado (jose)

hola marcos

al final por no aburrirme te he hecho el ejercicio
como decias que la función tenia que ser así:
   void formatea_numero(long int)
interpreto que el valor max es el de un long int,
tanto el positivo como el negativo de un long int
espero te sirva, no hace falta usar cadenas

suerte ;-)

/* poner el punto de los miles */

#include <stdio.h>

void formatea_numero(long n);

int main(void)
{
  long num;

  printf("\nIntroduce un número menor a %ld y mayor a %ld: ",
        -1/2ul, ~(-1/2ul));
  setbuf(stdin, NULL); scanf("%ld", &num);

  if(num < 0)
  {
     num *= -1;
     printf("-");
  }

  formatea_numero(num);
  puts("");

  return 0;
}

void formatea_numero(long n)
{
  if(n < 1000)
     printf("%ld", n);
  else
  {
     formatea_numero(n/1000);
     printf(".%03ld",n%1000);
  }
}






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)