Código:
#include <stdio.h>
struct Hora{
int hora;
int minuto;
int segundo;};
struct Hora inicializa(void);
void estableceHora(struct Hora *var, int hor, int min,int seg);
void imprimeMilitar(struct Hora *var);
void imprimeEstandar(struct Hora *var);
int main(void){
struct Hora h=inicializa();
imprimeMilitar(&h);
imprimeEstandar(&h);
estableceHora(&h,13,27,6);
imprimeEstandar(&h);
imprimeEstandar(&h);
estableceHora(&h,66,66,66);
imprimeMilitar(&h);
imprimeEstandar(&h);
return 0;}
struct Hora inicializa(void){
struct Hora horacero={0,0,0};
return horacero;}
void estableceHora(struct Hora *var, int hor,int min,int seg){
var->hora=(hor>=0&&hor<24)?hor:0;
var->hora=(min>=0&&min<60)?hor:0;
var->hora=(seg>=0&&seg<60)?hor:0;}
void imprimeMilitar(struct Hora *var){
printf("%s%i:%s%i\n",(*var).hora<10?"0":"",(*var).hora,(*var).minuto<10?"0":"",(*var).minuto);}
void imprimeEstandar(struct Hora *var){
printf("%i:%s%i:%s%i\n",((*var).hora==0||(*var).hora==12)?12:(*var).hora%12,(*var).minuto<10?"0":"",(*var).segundo<10?"0":"",(*var).segundo,(*var).hora<12?"AM":"PM");}
struct Hora{
int hora;
int minuto;
int segundo;};
struct Hora inicializa(void);
void estableceHora(struct Hora *var, int hor, int min,int seg);
void imprimeMilitar(struct Hora *var);
void imprimeEstandar(struct Hora *var);
int main(void){
struct Hora h=inicializa();
imprimeMilitar(&h);
imprimeEstandar(&h);
estableceHora(&h,13,27,6);
imprimeEstandar(&h);
imprimeEstandar(&h);
estableceHora(&h,66,66,66);
imprimeMilitar(&h);
imprimeEstandar(&h);
return 0;}
struct Hora inicializa(void){
struct Hora horacero={0,0,0};
return horacero;}
void estableceHora(struct Hora *var, int hor,int min,int seg){
var->hora=(hor>=0&&hor<24)?hor:0;
var->hora=(min>=0&&min<60)?hor:0;
var->hora=(seg>=0&&seg<60)?hor:0;}
void imprimeMilitar(struct Hora *var){
printf("%s%i:%s%i\n",(*var).hora<10?"0":"",(*var).hora,(*var).minuto<10?"0":"",(*var).minuto);}
void imprimeEstandar(struct Hora *var){
printf("%i:%s%i:%s%i\n",((*var).hora==0||(*var).hora==12)?12:(*var).hora%12,(*var).minuto<10?"0":"",(*var).segundo<10?"0":"",(*var).segundo,(*var).hora<12?"AM":"PM");}