Ir ao conteúdo
  • Cadastre-se
FBorges22

C Contagem regresiva em C

Posts recomendados

Saudações

Estou fazendo um programa que realiza contagem regresiva de 10 até 1, eu consegui fazer só que não era bem assim que eu queria, o código é:

 
/* clock example: countdown */
#include <stdio.h>
#include <time.h>

void wait ( int seconds )
{
  clock_t endwait;
  endwait = clock () + seconds * CLK_TCK;
  while (clock() < endwait) {}
}

int main ()
{
  int n;
  printf ("Starting countdown...\n");
  for (n=10; n>0; n--)
  {
    printf ("%d\n",n);
    wait (1);
  }
  printf ("FIRE!!!\n");
  return 0;
}

E quando eu compilo o programa sai assim:

Citação
Starting countdown...

10

9

8

7

6

5

4

3

2

1

FIRE!!!

Eu queria que ele não ficasse dando enter e sim que ele mudase o número 10 na tela para o número 9..8..7.. e assim por diante. Como fazer isso??? Porque esse programa ta ocupando muitas linhas na tela... Alguém pode me ajudar?

Abraços,

FBorges22

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdlib.h>

#include <time.h>

void wait ( int seconds )

{

clock_t endwait;

endwait = clock () + seconds * CLK_TCK;

while (clock() < endwait) {}

}

int main ()

{

int n;

printf ("Starting countdown...\n");

for (n=10; n>0; n--)

{

printf ("%d\n",n);

system ("cls"); // apos o numero limpar a tela a o tempo esta muito curto....

wait (1);

}

printf ("FIRE!!!\n");

//return 0;

system ("pause");

}

acho q assim fica bom...mas o tempo de execuçao de um numero para o outro esta muito rápido......

falou

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou meio estranho dessa maneira.... será que tem como fazer daquele modo que eu falei?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho q esse código resolve o problema...

#include<stdio.h>

#include<time.h>

#include<conio.h>

void wait(int seconds){

clock_t endwait;

endwait = clock() + seconds * CLK_TCK;

while (clock() < endwait);

}

int main(){

int n;

clrscr();

printf("Starting countdown... ");

for (n=10;n>0;n--){

  printf("%2d",n);

  wait(1);

  gotoxy(wherex()-2,wherey());

}

printf("FIRE!!!\n");

getch();

return 0;

}

espero ter ajudado... ^^

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolveu!!!

Obrigado pela a ajuda!! Eu estava realmente precisando construir um programa que tivesse contagem regressiva.

Só uma ultima dúvida:

Como fazer para que os números menores que 10 fiquem encostados na tela?? Porque quando chega o 9 por exemplo ele deixa um espaço vazio na esquerda. Tipo teria como representar eles assim??

11

10

09

08

07

....

00

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um código mais simples para resolver esse problema:



#include "stdio.h"
#include "conio.h"

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

printf("Inicando a contagem regressiva: \n");

for (int c=10; c>=0; c--){
      printf("%02d\n",c);
      Sleep(1000); //Valor em Milissegundos
}

printf("FIRE!!!\n");
getch();
return 0;
}

Resultado:

Inicando a contagem regressiva:

10

09

08

07

06

05

04

03

02

01

00

FIRE!!!

Para não ficar dando quebra de linha:



#include "stdio.h"
#include "conio.h"

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

printf("Inicando a contagem regressiva: \n");
Sleep(1000);

for (int c=10; c>=0; c--){
system("cls");
printf("%02d\n",c);
Sleep(1000);
}
system("cls");
printf("FIRE!!!\n");
getch();
return 0;
}

:D

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 14/10/2005 às 01:42, ugboy disse:

#include <stdlib.h>

#include <time.h>

void wait ( int seconds )

{

clock_t endwait;

endwait = clock () + seconds * CLK_TCK;

while (clock() < endwait) {}

}

int main ()

{

int n;

printf ("Starting countdown...\n");

for (n=10; n>0; n--)

{

printf ("%d\n",n);

system ("cls"); // apos o numero limpar a tela a o tempo esta muito curto....

wait (1);

}

printf ("FIRE!!!\n");

//return 0;

system ("pause");

}

acho q assim fica bom...mas o tempo de execuçao de um numero para o outro esta muito rápido......

falou

Cara, só lembrar de uma informação básica, o compilador irá ler linha por linha, então é bom mante-la organizada, pois a sua lógica está perfeitamente correta, Resumindo. Corrigi o seu problema (12 anos depois kkkkkkkkkkk) com uma indicação de comentário // . Abração

 

#include <stdlib.h>
#include <time.h>
void wait ( int seconds )
{
clock_t endwait;
endwait = clock () + seconds * CLK_TCK;
while (clock() < endwait) {}
}
int main ()
{
int n;
printf ("Starting countdown...\n");
for (n=10; n>0; n--)
{
printf ("%d\n",n);

wait (1);    // Inverti a posicao com "system("cls")
system ("cls"); // apos o numero limpar a tela a o tempo esta muito curto.... 
}
printf ("FIRE!!!\n");
//return 0;
system ("pause");
}
 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! Suave? Eu estou tentanto fazer um programa em c++ que faça essa contagem só que eu quero que ele mude de cor toda a vez que mudar de número! Podem me ajudar? valeu 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@czr.77 @czr.77     para imprimir o número no mesmo lugar você pode usar uma função criada pelo programador normalmente chamada gotoxy() ,  que permite posicionar o cursor na tela do console , na posição xy , coluna e linha , e para colorir as letras ou números ,  tem outra função chamada textcolor() ,   você pode ver alguma coisa sobre isso nesse tópico :

 

então para mudar a cor a cada número , coloque a função textcolor dentro do loop , e a cada ciclo incremente o valor da cor , ou se você quiser cores especificas , então coloque o número das cores que você quer dentro de um vetor , e lá dentro do loop coloque na função o valor que está no vetor  .   mas não podemos te dar um código pronto pois é contra as regras do fórum , então faça seu código e poste aqui para vermos como está e em que podemos ajudar   .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...