Relogio em c

5 respostas
R

Saudações galera!!!

Bom eu sou iniciante na programação e em especifico em c …
fiz um relogio com os conhecimentos que adquiri no decorrer do meu curso… mais percebi que o relogio esta atrasando…
desde ja agradeço a atenção
abraços!!!

#include <stdio.h>
#include <stdlib.h>
#include<conio.h>

/* run this program using the console pauser or add your own getch, system(“pause”) or input loop */

int main(int argc, char *argv[]) {

int s=0,m=0,h=0;
char acertar;

printf("Entre com a hora e PRESSIONE ENTER\n>>>");
scanf("%d",&h);
system("cls");


printf("Entre com os minutos e PRESSONE ENTER\n>>>");
scanf("%d",&m);
system("cls");
while(1){
	
		system("color 13");
	s++;
    
	printf("***************************************************\n");
	printf("        HORAS MINUTOS SEGUNDOS\n");
	printf("               %d:%d:%d",h,m,s);
	printf("\n***************************************************");
	sleep(01);
	system("cls");
	
	
	
	
	
	
	if(s==59){
	m++;
	s=0;	
	}
	
	if(m==59){
		
	h++;
	s=0;
	m=0;
	
	}
}
return 0;

}

5 Respostas

R

Se alguem puder ajuda…!!!

E

O método sleep espera PELO MENOS 1 segundo, não EXATAMENTE 1 segundo. Portanto, o relógio vai atrasar mesmo :slight_smile:

Para que o relógio não atrase, você precisa pegar o tempo do computador. Como você está usando Windows (argh) você pode usar o método time - veja a documentação do header #include <time.h>

R

entanglement:
O método sleep espera PELO MENOS 1 segundo, não EXATAMENTE 1 segundo. Portanto, o relógio vai atrasar mesmo :slight_smile:

Para que o relógio não atrase, você precisa pegar o tempo do computador. Como você está usando Windows (argh) você pode usar o método time - veja a documentação do header #include <time.h>

vlw brother… quer dizer então q o sleep não é exatamente 1 segundo?

E

Ele espera um pouco mais que um segundo, e ainda por cima nunca é a mesma quantidade de tempo - se quiser saber exatamente quanto, é necessário usar algumas APIs do Windows como QueryPerformanceCounter / QueryPerformanceFrequency, e fazer algumas contas.

Além disso, tem o tempo de você escrever algo na tela (e o pior de tudo, você ainda por cima fica apagando a tela direto - é uma operação relativamente lenta :slight_smile: ). Tudo isso faz com que o relógio se atrase.

R

entanglement:
Ele espera um pouco mais que um segundo, e ainda por cima nunca é a mesma quantidade de tempo - se quiser saber exatamente quanto, é necessário usar algumas APIs do Windows como QueryPerformanceCounter / QueryPerformanceFrequency, e fazer algumas contas.

Além disso, tem o tempo de você escrever algo na tela (e o pior de tudo, você ainda por cima fica apagando a tela direto - é uma operação relativamente lenta :slight_smile: ). Tudo isso faz com que o relógio se atrase.

vlw brother muito bem explicado… vlw mesmo… :slight_smile:

Criado 9 de janeiro de 2013
Ultima resposta 9 de jan. de 2013
Respostas 5
Participantes 2