Ir para conteúdo

POWERED BY:

Arquivado

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

Ripper

[Resolvido] Dois problemas

Recommended Posts

Bom to com mais dois problemas pessoal.

1)Faça um programa em C que implemente o jogo onde o usuário deverá acertar um número entre 1 e 100, escolhido informado inicialmente por um outro

usuário. A cada palpite do usuário, o programa deve responder indicando se este é inferior ou superior ao número escondido. Quando o usuário acertar, o algoritmo deve dar-lhe os parabéns e indicar em quantas jogadas acertou.

Eu fiz :

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a1, a2,x=1;
    if(1 <= a1 && a1 <= 100)
    {
      printf("O usuario1 digita o numero escondido: ");
      scanf("%d",&a1);
      EN:printf("O usuario2 digita o numero escolhido: ");
      scanf("%d",&a2);
      if(a1>a2)
       {
         printf("O numero escolhido e menor que o escondido, escolha outro numero.\n");
         x=x+1;
         goto EN;
       }
      else if (a1<a2)
       { 
         printf("O numero escolhido e maior que o escondido, escolha outro numero.\n");
         x=x+1;
         goto EN;
       }
      else
       {
         printf("\nParabens, voce acertou o numero escondido\n\n");
       }
    }
    else printf("O numero nao e permitido");
    printf("O numero de tentativas foi: %d\n",x);
    return(0);
}
Esse programa não limita a1 entre 1 e 100 como é pedido na questão e também não conta o número de tentativas. No final sempre informa que foram apenas duas.

O outro é: Faça um programa em C que peça uma sequência de 8 números ao usuário, e que no fim apresente o somatório dos valores. Se o usuário introduzir dois números consecutivos iguais, o algoritmo deve rejeitar o segundo e pedir outro número em vez desse.

A minha dúvida é como faço para armazenar e comparar os números. Coloco em uma string ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse programa não limita a1 entre 1 e 100 como é pedido na questão

Simples, veja o começo do seu programa:

 

if(1 <= a1 && a1 <= 100)

{

printf("O usuario1 digita o numero escondido: ");

scanf("%d",&a1);

Ele lê o a1 depois da condição... você deve colocar a condição depois que o usuário digitar o a1.

 

 

 

também não conta o número de tentativas

Aqui contou as tentativas certo...

 

 

PS:.. uso o dev-c++

 

Você poderia colocar #include <conio.h> no início e colocar getch(); no final do code ao invés do return(0);

, assim ele esperará o usuário apertar alguma tecla antes de fechar.

 

 

 

 

 

 

 

 

como faço para armazenar e comparar os números

 

 

Coloque 8 variáveis do tipo float, já que ele não especificou se serão inteiros. Para armazenar sem ser iguais você pode colocar a partir de quando ler o b:

 

while (b==a)
{
scanf("%f",B);

if (b==a)
printf("Este numero e igual ao anterior, coloque novamente: \n");
}

 

ai você faria o mesmo para todas 7 variaveis que restam...

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz o segundo programa as pressas, apenas para você ver como exemplo:

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
      int a,b,c,d,e,f,g,h,s;
      printf("\n\nDigite  8 numeros aleatorios nos quais o que voce digitar nao pode ser o mesmo do anterior: ");
      scanf("%i",a);
      s = a;
      scanf("\n\n%i",B);
      
      while (b==a)
            {
            printf("\n\nEste numero e igual ao anterior, coloque novamente: \n");
            scanf("\n\n%i",B);
            }

            s = s+b;
            
            
            scanf("\n\n%i",c);
            
            
      while (c==B)
            {
            printf("\n\nEste numero e igual ao anterior, coloque novamente: \n");
            scanf("\n\n%i",c);
            }

            s = s+c;   
            
                        scanf("\n\n%i",d);
            
            
      while (d==c)
            {
            printf("\n\nEste numero e igual ao anterior, coloque novamente: \n");
            scanf("\n\n%i",d);
            }

            s = s+d;    
            
            
            
            scanf("\n\n%i",e);
            
            
      while (e==d)
            {
            printf("\n\nEste numero e igual ao anterior, coloque novamente: \n");
            scanf("\n\n%i",e);
            }

            s = s+e;                
            
            
            scanf("\n\n%i",f);
            
            
      while (f==e)
            {
            printf("\n\nEste numero e igual ao anterior, coloque novamente: \n");
            scanf("\n\n%i",f);
            }

            s = s+f; 
            
            

            scanf("\n\n%i",g);
            
            
      while (g==f)
            {
            printf("\n\nEste numero e igual ao anterior, coloque novamente: \n");
            scanf("\n\n%i",g);
            }

            s = s+g;   
            
            
            
            scanf("\n\n%i",h);
            
            
      while (h==g)
            {
            printf("\n\nEste numero e igual ao anterior, coloque novamente: \n");
            scanf("\n\n%i",h);
            }

            s = s+h; 
            
            printf("\n\nA soma de todos numeros e: $i\n", s);            
             


      
      getch();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que nada, é um prazer...

 

^^

 

Estamos aqui apra ajudar e sermos ajudados...

 

xD

 

PS:.. o segundo eu fiz com os números sendo inteiros...

 

PS²:.. da uma olhada nas suas menssagens depois... mandei uma para você.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma pequena correção, nos scanf, antes da variável coloque o &. Ex:

 

scanf("\n\n%i",&h);

 

Peço desculpas por não ter arrumado antes... é que eu fiz com pressa e pessou despercebido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eca, n use getch(), a conio é antiga e desatualizada;

faça algo simples assim:

 

#include <stdio.h>

int main(){
    int iNumAle, iNumTent, iTent;
    char cEsperaTecla;
    iTent = 1;
    iNumTent = -1;
    printf("Digite um numero aleatorio para o outro player tentar adivinhar: ");
    scanf("%d", &iNumAle);
    while(iNumTent != iNumAle){
        printf("Digite um numero para tentar adivinhar o numero digitado anteriormente: ");
        scanf("%d", &iNumTent);
        puts("");
        if (iNumTent != iNumAle){
            iTent++;
            if (iNumAle > iNumTent) printf("O numero digitado e maior\n");
            else                    printf("O numero digitado e menor\n");
        }
    }
    printf("Voce acertou o numero em %d tentativas\n", iTent);
    printf("Digite qualquer tecla para sair do programa...");
    scanf("%c%*c", &cEsperaTecla);
    return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só para saber...

 

sua dúvida foi sanada(resolvida) ou tem algo mais?

 

Caso tennho sido resolvida poste avisando para que eu não fique monitorando este tópico atoa... por favor...

 

^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom para falar a verdade aquele programa da certo só que ele pede que se aperte enter antes de digitar outro numero. Eu tava olhando na apostila que uso e tava tentando usar um vetor para armazenar os numeros e comparar eles, mas ainda tenho que terminar de ler o capítulo. Equanto isso tava melhorar outros programas que eu tinha feito, mas valeu pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.