Ejercicio de lenguaje C - La hora un segundo después
Escribir en lenguaje C un programa que:
1º) Pida por teclado una hora en tres variables: horas, minutos y segundos (datos enteros).
2º) Muestre por pantalla la hora un segundo después.
Nota 1: Si la hora introducida por el usuario es incorrecta, se debe mostrar el mensaje: "ERROR: La hora es incorrecta.".
Nota 2: Para que una hora sea válida, se tiene que cumplir que:
- Las horas deben ser mayor o igual que 0 y menor o igual que 23.
- Los minutos deben ser mayor o igual que 0 y menor o igual que 59.
- Los segundos deben ser mayor o igual que 0 y menor o igual que 59.
En pantalla se verá, por ejemplo:
Si se introduce una hora incorrecta, en pantalla se verá, por ejemplo:
Solución: anidando varias instrucciones if
/* Programa: La hora un segundo después */
#include <conio.h>
#include <stdio.h>
int main()
{
int h, m, s;
printf( "\n Introduzca horas: " );
scanf( "%d", &h );
printf( "\n Introduzca minutos: " );
scanf( "%d", &m );
printf( "\n Introduzca segundos: " );
scanf( "%d", &s );
if ( h >= 0 && h <= 23 && m >= 0 && m <= 59 && s >= 0 && s <= 59 )
{
s++;
if ( s == 60 )
{
s = 0;
m++;
if ( m == 60 )
{
m = 0;
h++;
if ( h == 24 )
h = 0;
}
}
printf( "\n Un segundo despu%cs la hora es: %d:%d:%d", 130, h, m, s );
}
else
printf( "\n ERROR: La hora es incorrecta." );
getch(); /* Pausa */
return 0;
}
- El operador incremento (++) se ha utilizado para, cuando corresponda, incrementar en una unidad el valor de las variables h, m y s. De forma que, por ejemplo s++ es lo mismo que escribir s = s + 1.
- Por otra parte, obsérvese que, algunos caracteres abrir y cerrar llave ({}) se han podido omitir, pero otros no.