Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Pedro

Perguntas e Respostas c++

Mensagens Recomendadas

Pedro

Boas,

Precisava que alguem me guiasse nesta parte especifica do código, estou a algum tempo aqui a testar e não me está a ocorrer nada. 

Tenho 5 arrays ( Basico,Facil,Medio,Dificil,Extremo ) cada um deles tem (id_pergunta,pergunta,op1,op2,op3,op4,opcorreta,valor) eu estou a correr o array com:

//Faz perguntas do nivel básico
				for (int i = 0; i < 5; i++)
				{
					if (!Basico[i].FazPergunta())
					{
						system("cls");
						cout << "\n";
						cout << "Infelizmente não acertou na resposta." << "\n";
						cout << "A sua Pontuação foi: " << total << ".";
						cout << "\n";
						//Escreve para o ficheiro o nome e a pontuação do utilizador.
						EscreverParaFicheiros();
						break;
					}

				}

O meu problema é que eu tenho de percorrer os 5 indices do array e após ele percorrer os 5 passar para o array da dificuldade seguinte.
Usando outro for por baixo desse funciona mas caso a pergunta falhe ele passa para dentro do if e apresenta a mensagem de erro juntamente com o for a seguir.

(Não posso utilizar goto)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

Em vez de usares um break, cria uma variável jaErrou que te diz se o utilizador já errou.  Depois no for alteras a condição para !jaErrou && i < 5.

Adicionalmente talvez se justifique criares um array bidimensional, que junta todas as dificuldades (tipo perguntas[0]=Basico; perguntas[1]=Facil; ...).  Isto iria-te permitir usar dois ciclos aninhados:

for(int i = 0; !jaErrou && i < 5; i++) {
  for(int j = 0; !jaErrou && j < 5; j++) {
    if (!pergunta[i][j].FazPergunta()) {
      // ...
    }
  }
}

 

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.