Ir ao conteúdo
  • Cadastre-se

Ajuda com Linguagem C


JohnM

Posts recomendados

Comecei a estudar a linguagem a uns dois anos mas acabei parando, voltei outro dia e resolvi criar um "joguinho" de adivinhação. Digamos que estava tudo bem até eu compilar hehe. Meu problema foi que ele não termina quando deveria terminar. Bem vai ficar mais fácil de entender quando virem o código:

#include <cstdlib>

#include <iostream>

#include <stdio.h>

#include <math.h>

#include <string>

using namespace std;

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

{

int i,t,m,n,x,g;

string nome;

i = 10;

t = 3 ;

m = 0;

x = 0;

srand(time(NULL));

n = rand () % 10;

cout<<"Bem-Vindo ao jogo Advinhe o Numero!"<<endl;

cout<<"voce tem "<<t<<" chances para adivinhar o numero!"<<endl;

cout<<"Insira seu nome para que possamos começar: ";

cin>>nome;

system ("cls");

do

{

cout<<"Agora "<<nome<<". Qual o numero que foi gerado?"<<endl;

cin>>g;

if (g>n)

cout<<"Alto de mais!"<<endl;

if (g<n)

cout<<"Baixo de mais!"<<endl;

t--;

cout<<"voce ainda tem "<<t<<" tentativas"<<endl;

m++;

} while (g!=n || m<t);

{

if (g==n);

cout<<"Parabéns voce acertou!"<<endl;

if (t<=0 &&g!=n && m>=t || t==0 &&x!=n)

cout<<"Que pena... voce nao conseguiu acertar."<<endl;

system("PAUSE");

return EXIT_SUCCESS;

}

}

Link para o comentário
Compartilhar em outros sites

Obrigado pela tentativa Edmorte porém meu problema é outro, não é que ele não encerre, o problema é que ele só encerra se o player acertar o numero, coisa que não deveria acontecer visto que o player deveria ter somente 3 tentativas, porém quando o player chega a 0 tentativas ao invés de encerrar ele conta como -1 tentativas, -2 tentativas, -3 tentativas e por ai vai até que o player acerte o numero ou encerre o programa manualmente.

Removi o m++ porém o erro continuou.

Link para o comentário
Compartilhar em outros sites

Obrigado pela tentativa Edmorte porém meu problema é outro, não é que ele não encerre, o problema é que ele só encerra se o player acertar o numero, coisa que não deveria acontecer visto que o player deveria ter somente 3 tentativas, porém quando o player chega a 0 tentativas ao invés de encerrar ele conta como -1 tentativas, -2 tentativas, -3 tentativas e por ai vai até que o player acerte o numero ou encerre o programa manualmente.

Removi o m++ porém o erro continuou.

Eu não estava tentando, estava errado mesmo.

O erro que você se refere é porque o while continua enquanto for verdadeiro, ou seja, n!=g OU ...

No || qualquer lado que seja verdade é uma verdade. Mesmo que o player acerte de primeira não vai sair do loop até que ambas condições sejam falsas.

Você precisa de um && (AND), assim quando qualquer uma das condições for falsa ele encerra.

Eu não estou executando seu código, logo só olho aquilo que você reclama.

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...