Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com código


Gabriel 27

Pergunta

Primeiro de tudo queria enfatizar que sou iniciante em C++/C e no fórum também. Estou tendo um problema com esse código abaixo. Em jog2cs() não consigo armazenar valores em x3, y3 e o mais importante, ca3. Preciso realmente de ajuda. Obrigado desde já.

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


//Declaração de variáveis
 char x1,x2,x3,x4;
 float y1,y2,y3,y4,cont1=0,cont3=0,ca1,ca2,ca3,ca4;


void jog1cs()//Jogador 1:define casa
{

 printf("Jogador 1\n\n");
 printf("Entre com as coordenadas de onde deseja se esconder: ");
 //define casa jogador 1 na forma (x1,y1)
 scanf("%c%f",&x1,&y1);
 //define um número representante da casa escolhida na forma ca1
 if(x1=='a')
 {
  if(y1==1)
   ca1=1;
  else
   if(y1==2)
    ca1=2;
   else
   {
    printf("Valor invalido\n");
    cont1=1;
   }
 }
 else
  if(x1=='b')
  {
   if(y1==1)
    ca1=3;
   else
    if(y1==2)
     ca1=4;
    else
    {
     printf("Valor invalido\n");
     cont1=1;
    }
  }
  else
  {
   printf("Valor invalido\n");
   cont1=1;
  }
              
}

void jog2cs()//Jogador 2:define casa
{

 printf("\n\nJogador 2\n\n");
 printf("Entre com as coordenadas de onde deseja se esconder: ");
 //define casa jogador 2 na forma (x3,y3)
 scanf("%c%f",&x3,&y3);
 //define um número representante da casa escolhida na forma ca3
 if(x3=='a')
 {
  if(y3==1)
   ca3=1;
  else
   if(y3==2)
    ca3=2;
   else
   {
    printf("Valor invalido\n");
    cont3=1;
   }
 }
 else
  if(x3=='b')
  {
   if(y3==1)
    ca3=3;
   else
    if(y3==2)
     ca3=4;
    else
    {
     printf("Valor invalido\n");
     cont3=1;
    }
  }
  else
  {
   printf("Valor invalido\n");
   cont3=1;
  }
              
}
void jog1bo()//Jogador 1:bombardeia casa
{
 printf("Jogador 1\n\n");
 printf("Entre com as coordenadas que deseja bombardear: ");
 //Define a casa bombardeada por jogador 1 na forma (x2,y2)
 scanf("%c%f",&x2,&y2);
 //atribui um número representante para bombardeio jogador 1
 if(x2=='a')
 {
  if(y2==1)
   ca2=1;
  else
   if(y2==2)
    ca2=2;
   else
   {
    printf("Valor invalido");
   }     
 }
     
}


main()
{
  
 jog1cs();
 if(cont1==0)  
  jog2cs();


 system("pause"); 
}

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Ok. Estranho mesmo não ter funcionado com o %c%f juntos em um scanf. Eu só propus os scanfs separados só pra testar.

Tenta com o %c%f juntos em um scanf novamente, mas primeiro digite o caracter, tecle enter, depois o número, tecla enter. Só pra ver se dá certo.

Editado por RonaldoRG
Link para o comentário
Compartilhar em outros sites

  • 0

Eu compilei teu código aqui e fiz alguns testes:

Deve ser algum bug no compilador porque eu deixei somente a função jog2cs() e funcionou.

Deu certo colocando dois scanfs:

scanf("%c%f", &x3, &y3);
scanf("%c%f", &x3, &y3);
É uma armengagem danada. Faz um loop que testa as variáveis x3 e y3.
do{
      scanf("%c%f", &x3, &y3);
}while(x3 == ' ' || y3 == 0.0);

Testa ai pra vê depois posta o resultado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...