Adivinhar um número

Publicado por Francisco Leandro Xavier Carneiro (última atualização em 05/04/2010)

[ Hits: 28.024 ]

Homepage: http://conexaotech.blogspot.com/

Download adiv_num.c




Script simples: o programa gera um número e pede para o usuário acertar, quando o usuário acerta, o programa diz quantas tentativas foram feitas para adivinhar o número pensado, quando o usuário ultrapassa o limite de tentativas o programa para e pergunta se o usuário quer tentar novamente.

  



Esconder código-fonte

//ADIVINHA NÚMERO
//Leandro Xavier @leandro_xavier
//30.03.2010

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

int main() {
  int num, x;
  int tent = 1;
  char s = 't';

  srand(time(NULL));
  x = rand() % 100 + 1;

  printf("\n_____________________________________________________________________________");
  printf("\n                   ESTOU PENSANDO EM UM NÚMERO DE 1 a 100");
  printf("\n                                  ADIVINHE!");

  do {
  printf("\nDigite um número: ");
  scanf("%d", &num);
  
    if (num > x) {
      printf("O NÚMERO QUE ESTOU PENSANDO É MENOR DO QUE %d", num);
    }
    else {
      if (num < x)
        printf("O NÚMERO QUE ESTOU PENSANDO É MAIOR DO QUE %d", num);  
      else {
        printf("\n                              VOCÊ ACERTOU!!");
        printf("\n                           Número de tentativas: %d", tent);
        printf("\n                            O número era: %d", x);
      }
    }
  
  tent++;
  } while (num != x && tent <= 20);

  if (tent > 20) {
    printf("\n\nVOCÊ ULTRAPASSOU O LIMITE DE TENTATIVAS! TENTE OUTRA VEZ!");
    printf("\nO número era: %d", x);
  } 

  while (s != 's' && s != 'n') {
    printf("\n\nVOCÊ DESEJA TENTAR OUTRA VEZ? [s/n]: ");
    scanf("%c", &s);

    if (s == 's') 
      main();
  } 
  
  return 0;

}

Scripts recomendados

Plano cartesiano

Progressões Aritméticas e Geométricas (PA e PG)

Jogo do Labirinto no Terminal

Operações com vetor (soma, subtração e multiplicação) em C

equação de segundo grau


  

Comentários
[1] Comentário enviado por CaioMGA em 03/06/2010 - 00:02h

A linha
srand(time(NULL));

faz exatamente o que?

[2] Comentário enviado por leandrox em 20/07/2010 - 22:31h

Olá Caio!
O comando srand gera um número randomicamente de acordo a hora do sistema para que um número não se repita.
Veja mais nesses links:
http://www.vivaolinux.com.br/dica/Gerando-numeros-aleatorios-em-C
http://www.vivaolinux.com.br/artigo/Aleatoriedade-em-C/

Abraço!


Contribuir com comentário