Ayuda por favor ejercicio reloj do/while C

Iniciado por juanpalomo098, 21 Noviembre 2016, 15:44 PM

0 Miembros y 1 Visitante están viendo este tema.

MAFUS

No es putchar. Es getchar.

Date cuenta de que no reinicias cont. Al siguiente año, si implementas el código para reiniciar los días a cada año, no va a funcionar.

juanpalomo098

#11
Ya, pero tengo que seguir, me faltan muchos ejercicios por hacer todavia.
¿Veis algun error? Si dejo el programa corriendo para ver si llega al dia 8  voy a tener que sacar un extintor.


Realizar un reloj que muestre el siguiente formato por pantalla:
   Viernes 30 de Octubre de 1998. 14:25:15,58

#include<stdio.h>
void main(){

int centiseg,seg,min,hr,dia,sem,mes,ano;
seg=0;
min=0;
hr=0;
dia=1;
centiseg=0;
sem=1;
mes=1;
ano=1900;


do{
centiseg++;
if(centiseg>=100){seg++;centiseg=0;}
if(seg>=60){min++; seg=0;}
if(min>=60){hr++;min=0;}
if(hr>=24){dia++;hr=0;}
if(dia>=8){sem++;}
if(sem>=5){mes++;dia=1;}
if(mes>=13){ano++;mes=1;}
if(dia==1){printf("Lunes");}
else if(dia==2){printf("Martes");}
else if(dia==3){printf("Miercoles");}
else if(dia==4){printf("Jueves");}
else if(dia==5){printf("Viernes");}
else if(dia==6){printf("Sabado");}
else if(dia==7){printf("Domingo");}
else {printf("error dia");}

printf(" %d de ",dia);

if(mes==1){printf("Enero");}
else if(mes==2){printf("Febrero");}
else if(mes==3){printf("Marzo");}
else if(mes==4){printf("Abril");}
else if(mes==5){printf("Mayo");}
else if(mes==6){printf("Junio");}
else if(mes==7){printf("Julio");}
else if(mes==8){printf("Agosto");}
else if(mes==9){printf("Septiembre");}
else if(mes==10){printf("Octubre");}
else if(mes==11){printf("Noviembre");}
else if(mes==12){printf("Dicienbre");}
else{printf("error mes");}
printf(" %d ",ano);




printf("%d:%d:%d,%d\n",hr,min,seg,centiseg);


}while(ano<2000);//por ejemplo
getchar();


}//void

MAFUS

Puedes cambiar todo ese if else por switch.
Por otro lado tienes meses de 35 días. Recuerda que son de 28, 29, 30 y 31 días según el mes y año.

juanpalomo098

Ahi esta, creo que esta bien, gracias de nuevo.
#include<stdio.h>
void main(){

int centiseg,seg,min,hr,dia,mes,ano;
seg=0;
min=0;
hr=0;
dia=1;
centiseg=0;

mes=1;
ano=1900;


do{
centiseg++;
if(centiseg>=100){seg++;centiseg=0;}
if(seg>=60){min++; seg=0;}
if(min>=60){hr++;min=0;}
if(hr>=24){dia++;hr=0;}

if(dia>=32&&mes==1){mes++;dia=0;}
if(dia>=29&&mes==2){mes++;dia=0;}
if(dia>=32&&mes==3){mes++;dia=0;}
if(dia>=31&&mes==4){mes++;dia=0;}
if(dia>=32&&mes==5){mes++;dia=0;}
if(dia>=31&&mes==6){mes++;dia=0;}
if(dia>=32&&mes==7){mes++;dia=0;}
if(dia>=31&&mes==8){mes++;dia=0;}
if(dia>=31&&mes==9){mes++;dia=0;}
if(dia>=32&&mes==10){mes++;dia=0;}
if(dia>=31&&mes==11){mes++;dia=0;}
if(dia>=32&&mes==12){ano++;mes=1;dia=0;}





switch(dia){
case 1:printf("Martes");break;
case 2:printf("Martes");break;
case 3:printf("Miercoles");break;
case 4:printf("Jueves");break;
case 5:printf("Viernes");break;
case 6:printf("Sabado");break;
case 7:printf("Domingo");break;}
printf(" %d de ",dia);



switch(mes){
case 1:printf("Enero");break;
case 2:printf("Febrero");break;
case 3:printf("Marzo");break;
case 4:printf("Abril");break;
case 5:printf("Mayo");break;
case 6:printf("Junio");break;
case 7:printf("Julio");break;
case 8:printf("Agosto");break;
case 9:printf("Septiembre");break;
case 10:printf("Octubre");break;
case 11:printf("Noviembre");break;
case 12:printf("Dicienbre");break;}
printf(" %d ",ano);




printf("%d:%d:%d:%d\n",hr,min,seg,centiseg);


}while(ano<2000);//por ejemplo
getchar();


}//void