Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: RAGMANINOV en 2 Noviembre 2016, 12:29 pm



Título: programa para convertir hora 12/24
Publicado por: RAGMANINOV en 2 Noviembre 2016, 12:29 pm
Hola a todos recien estoy aprendiendo a programar en lenguaje c y me dejaron algunas practicas en las que me encuentro atorado en una que me pide introducir la hora en formato de 24 horas en cinco caracteres (hh:mm) y la imprima en formato de 12 horas, con igual 5 caracteres mas el AM o PM (hh:mm AM/PM), pues ya tengo un programa que lo hace pero necesita que la hora se introduzca con un punto entre hora y minuto (hh.mm) en vez de con dos puntos, no se como hacer que salga con 2 puntos, toda vez que intento colocarlos me da error y no compila, aca el codigo que tengo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main (void)
  5.  
  6. {
  7.  
  8. float hora,hour;
  9.  
  10. printf ("escriba la hora en formato de 24 hora solo cinco caracteres (hh.mm): ");
  11. scanf ("%f",&hora);
  12.  
  13. if (hora<12.00)
  14.     {
  15.     printf ("la hora es: %.2f AM",hora);  
  16.     }
  17. else
  18.     {
  19.     hour=hora-12;
  20.     printf ("la hora es: %.2f PM",hour);
  21.     }
  22.  
  23. return (0);
  24.  
  25. }

MOD: Etiquetas GeSHi., Los titulos deben ser descriptivos a la temática


Título: Re: Ayuda con un programa en c
Publicado por: ivancea96 en 2 Noviembre 2016, 16:51 pm
Hola a todos recien estoy aprendiendo a programar en lenguaje c y me dejaron algunas practicas en las que me encuentro atorado en una que me pide introducir la hora en formato de 24 horas en cinco caracteres (hh:mm) y la imprima en formato de 12 horas, con igual 5 caracteres mas el AM o PM (hh:mm AM/PM), pues ya tengo un programa que lo hace pero necesita que la hora se introduzca con un punto entre hora y minuto (hh.mm) en vez de con dos puntos, no se como hacer que salga con 2 puntos, toda vez que intento colocarlos me da error y no compila, aca el codigo que tengo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main (void)
  5.  
  6. {
  7.  
  8. float hora,hour;
  9.  
  10. printf ("escriba la hora en formato de 24 hora solo cinco caracteres (hh.mm): ");
  11. scanf ("%f",&hora);
  12.  
  13. if (hora<12.00)
  14.     {
  15.     printf ("la hora es: %.2f AM",hora);  
  16.     }
  17. else
  18.     {
  19.     hour=hora-12;
  20.     printf ("la hora es: %.2f PM",hour);
  21.     }
  22.  
  23. return (0);
  24.  
  25. }

MOD: Etiquetas GeSHi.

"Me da error y no compila" no es una opción. Lee el error, y si no lo entiendes, ponlo por aquí.

Si ya lo hiciste con ':', pon ese código aquí. El cambio es mínimo.


Título: Re: programa para convertir hora 12/24
Publicado por: engel lex en 2 Noviembre 2016, 16:57 pm
"Me da error y no compila" no es una opción. Lee el error, y si no lo entiendes, ponlo por aquí.


reafirmo la opinión de ivancea96... coloca el error, sin eso no se sabe... porque ese código está bien y funciona


Título: Re: programa para convertir hora 12/24
Publicado por: MAFUS en 2 Noviembre 2016, 17:17 pm
En vez de capturar un float haz que se capturen dos enteros y un carácter en medio de ellos.


Título: Re: programa para convertir hora 12/24
Publicado por: engel lex en 2 Noviembre 2016, 17:47 pm
En vez de capturar un float haz que se capturen dos enteros y un carácter en medio de ellos.

Con que fin? Si capturar un float funciona bien y resuelve el problema? Por otro lado, eso no  causa un error de compilación


Título: Re: programa para convertir hora 12/24
Publicado por: MAFUS en 2 Noviembre 2016, 20:48 pm
Con un punto no es un problema pero con los dos puntos, que es la forma con la que lo quiere hacer sí.
Capturar, de igual forma, una hora con un float, tampoco lo veo práctico si llegara el caso de tener que realizar operaciones matemáticas sobre los minutos y acomodar las horas después.


Título: Re: programa para convertir hora 12/24
Publicado por: engel lex en 2 Noviembre 2016, 20:52 pm
Rayos creo que necesito lentes! No vi eso! Cierto! La mejor manera es la que indicas  ;)


Título: Re: programa para convertir hora 12/24
Publicado por: marrison en 3 Noviembre 2016, 18:57 pm
Además a la hora de caputrar un float es normal que sólo te deje con un punto, pues los float van separados por uno, no por dos puntos.

Como dice el compañero captura un entero, un carácter y después otro entero.


Título: Re: programa para convertir hora 12/24
Publicado por: RAGMANINOV en 9 Noviembre 2016, 09:15 am
En vez de capturar un float haz que se capturen dos enteros y un carácter en medio de ellos.

Rayos creo que necesito lentes! No vi eso! Cierto! La mejor manera es la que indicas  ;)

Además a la hora de caputrar un float es normal que sólo te deje con un punto, pues los float van separados por uno, no por dos puntos.

Como dice el compañero captura un entero, un carácter y después otro entero.

Muchas gracias a todos, esa era la solucion como dijo el compañero MAFUS, dejo el codigo por si a alguien le es de utilidad, saludos!

Código:
#include <stdio.h>
#include <stdlib.h>

int main (void)

{
   
int hora,hour, min;

printf ("escriba la hora y minutos en formato de 24 hrs. como hh:mm ( 5 caracteres): ");
scanf ("%d:%d",&hora,&min);

if (hora<12)
     {
     printf ("la hora es: %d:%d AM",hora, min); 
     }
else
     {
     hour=hora-12;
     printf ("la hora es: %d:%d PM",hour, min);
     }
 
return (0);

}