[ Foro de C++ ]

ayuda reloj en c++ de 24hr con solo if y banderas

28-Feb-2022 00:52
andres alarcon
1 Respuestas

hola, necesito que me ayuden para desarrolar un codigo de relor de 24hras

las epecificaciones que me dieron son estas:
- que el usuario ingreseentre un rango de la hora y minuto correctos (si no son correctos, que ponga que nos incorrectos y que el programa se reinicie en el area de poner la hora y minuto)
-que al llegar a la horas 23:59:59 se reinicie el contador del reloj a 00:00:00 y siga contando

gracias por su ayuda.



lo que llevo es esto:


#include <stdio.h>
#include <unistd.h>
#include <limits.h>


int valor = 0;
int r = -1;
int hr = -1;
int ms = -1;
int sg = 50;

	
	int main()
	{
		printf(" Programa para iniciar un reloj utilizando el formato de 24hr");
		sleep(5);
			system("cls");
			printf(" Cargando");
			sleep(1);
			system("cls");
			printf(" Cargando.");
			sleep(1);
			system("cls");
			printf(" Cargando..");
			sleep(1);
			system("cls");
			printf(" Cargando...");
			sleep(1);
			system("cls");
			printf(" Cargando");
			sleep(1);
			system("cls");
			printf(" Cargando.");
			sleep(1);
			system("cls");
			printf(" Cargando..");
			sleep(1);
			system("cls");
			printf(" Cargando...");
			sleep(1);
			system("cls");
			
				printf("....Bienvenido....");
				sleep(5);
				system("cls");
			
					printf("_.:Reloj:._\n\nDesea iniciar con el programa? \n\n 1: Si  \n 0: No\n\n");
					printf(" Ingrese el valor: ");
					scanf("%d",&valor);
					system("cls");
			
						printf(" Cargando");
						sleep(1);
						system("cls");
						printf(" Cargando.");
						sleep(1);
						system("cls");
						printf(" Cargando..");
						sleep(1);
						system("cls");
						printf(" Cargando...");
						sleep(1);
						system("cls");
						printf(" Cargando");
						sleep(1);
						system("cls");
						printf(" Cargando.");
						sleep(1);
						system("cls");
						printf(" Cargando..");
						sleep(1);
						system("cls");
						printf(" Cargando...");
						sleep(1);
						system("cls");
						
							
							
							if(valor == 1)
							{
								
									printf("\n Ingrese un valor entre el 0 y 23 para las HORAS: ");
									scanf ("%d",&hr);
									if ((hr >= 23)&&(hr <= 0)) 
									{
										printf("\n Este valor %d no es correcto",hr);
									}
								
								
									printf("\n Ingrese el valor que le asigne a los MINUTOS: ");
									scanf ("%d",&ms);
									if ((ms >= 59)&&(ms <= 0)) 
									{
										printf("\n Este valor %d no es correcto",ms);
									}
									
									
								while(true)
								{
									printf("\n\n%d: %d: %d ",hr,ms,sg);
								sleep(1);
								system("cls");
								
								
								if(sg==59)
								ms++;
								else if(ms==59)
								hr++;
								else sg++;
							
								}
							}
												
								if(valor == 0)
								{
									printf("Adios :)");
									sleep(1);
									system("cls");
									printf("Adios ;)");
									sleep(1);
									system("cls");
									printf("Adios :)");
									sleep(1);
									system("cls");
									printf("Adios ;)");
									sleep(1);
									system("cls");
									printf("Adios :)");
									sleep(1);
									system("cls");
								}
							
	}


 


01-Mar-2022 10:59
Nacho Cabanes (+82)

Tu código es muy difícil de seguir, con tantos fragmentos repetitivos innecesarios y con tabulaciones tan anárquicas. Quita lo que sobra y céntrate en la lógica. Ya lo "adornarás" después.

No entiendo eso de "valor con el que iniciar el programa". Debes pedir horas (que lo haces después), minutos (ídem) y segundos (que no pides). Todos ellos deben ser lecturas con "do-while". Si no sabes usar esa estructura, mira el apartado 3.2.2 del curso:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=607

Haz esos cambios primero, y seguimos a partir de ahí.






(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.)