Ir ao conteúdo
  • Cadastre-se

Ajuda...


hi-0ctane

Posts recomendados

Pessoal, preciso de um programa de adivinhação de número (trabalho de faculdade)

pede-se pro usuário pensar num número de 0 a 1000 (incluído)

daí o computador tem que ir chutando uns números aleatoriamente e o usuário deverá responder se o número pensado é maior ou menor que o número tentado...

e o computador tem no máximo 10 tentativas...

alguém sabe como eu devo fazer?!

obs: Preciso fazer em C (não pode C++)

Link para o comentário
Compartilhar em outros sites

Como o programa é simples e eu não tinha mais nada que fazer fiz-te o programa.

Mas para calcular o numero 1000 em 10 tentativas é impossivel pois de 0 a 1000 são 1001 numeros logo qualquer formula que consigas arranjar, existirá sempre um numero que nunca vais descobrir. Neste caso é o numero 1000.

O código que fiz está feito um pouco à pressa , é a 1ª versão que me veio à cabeça por isso qualquer duvida posta aí.

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

void main(void)
{
  int Tentativa = 1;
  int Numero;
  int DrawMenu = 1;
  int Terminar = 0;
  int Minimo = 0;
  int Maximo = 1000;

  do{

     if(DrawMenu)
     {
      /*Menu Inicial*/
    printf("Pense num numero de 0 a 1000 (Pressione uma tecla para continuar)");
    getch();
    printf("\n\nOPCOES:");
    printf("\n\tA - Acertou ");
    printf("\n\tU - O numero e' mais alto  (Up)");
    printf("\n\tD - O numero e' mais baixo (Down)");
        DrawMenu = 0;
     }

     /*Calcula o numero*/
     Numero = Minimo + ( (Maximo - Minimo) / 2 );

   printf("\nTentativa numero %d -> %d ", Tentativa++, Numero);

     switch(getch())
     {
        case 'a': case 'A':
         printf("\n\nQuer experimentar outra vez? (y -> para jogar de novo)");

           if(getch() == 'y')
           {
              /*Limpa ecran */
            clrscr();

              /*Inicializa variaveis*/
              Minimo = 0;
              Maximo = 1000;
              Tentativa = 0;
              DrawMenu = 1;
          }
           else Terminar = 1; /*Termina Programa*/
         break;

         case 'u': case 'U':
          Minimo = Numero; /*Novo Minimo*/
         break;

         case 'd': case 'D':
          Maximo = Numero; /*Novo Maximo*/
         break;
     }

  }while( !Terminar );

}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!