Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Pedro

Perguntas e Respostas c++

Recommended Posts

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)

Share this post


Link to post
Share on other 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()) {
      // ...
    }
  }
}

 

  • Vote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.