Witam, robię quiz w którym nie mogą powtarzać się pytania. Udało mi się zrobić LOSOWANIE bez powtórzeń, wypisanie pytań i odpowiedzi, jednak pytania i odpowiedzi nie pasują do siebie, tj. wyświetla się pytanie 2 a odpowiedzi do pytania 5...
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <string>
#include <stdio.h>
#include <conio.h>
using namespace std;
int menu;
char wybor;
int main()
{ int ile_pytan = 10; //z ilu pytan losujemy?
int ile_wylosowac = 10; //ile pytan wylosowac?
int ile_juz_wylosowano = 0; //zmienna pomocnicza
int * wylosowane = new int[ ile_wylosowac + 1 ]; //rezerwacja tablicy
bool losowanie_ok;
int pkt;
string kontynuowanie;
pkt = 0;
char menu;
string imie;
cout << "Podaj imie uczestnika testu: ";
cin >> imie;
cout << "WCISNIJ DOWOLNY KLAWISZ BY PRZEJSC DO QUIZU" << endl;
getch();
for( int i = 1; i <= ile_wylosowac; i++ )
{
do
{
int liczba = rand() % ile_pytan; //LOSOWANIE w C++
losowanie_ok = true;
for( int j = 1; j <= ile_juz_wylosowano; j++ )
{
//czy liczba nie zostala juz wczesniej wylosowana?
if( liczba == wylosowane[ j ] ) losowanie_ok = false;
}
if( losowanie_ok == true )
{
//mamy unikatowa liczbe, zapiszmy ja do tablicy
ile_juz_wylosowano++;
wylosowane[ ile_juz_wylosowano ] = liczba;
}
} while( losowanie_ok != true );
}
//wylosowane liczby mamy w losowej kolejnosci tablicy wylosowane[liczba]
string pytania[ 10 ] =
{ { "1pyt" }, { "2pyt" }, { "3pyt" }, { "4pyt" }, { "5pyt" },
{ "6pyt" }, { "7pyt" }, { "8pyt" }, { "9pyt" }, { "10pyt" } };
string odp[ 10 ][ 3 ] =
{ { "A1", "B1", "C1" }, { "A2", "B2", "C2" }, { "A3", "B3", "C3" }, { "A4", "B4", "C4" }, { "A5", "B5", "C5" },
{ "A6", "B6", "C6" }, { "A7", "B7", "C7" }, { "A8", "B8", "C8" }, { "A9", "B9", "C9" }, { "A10", "B10", "C10" } };
//¿eby wypisaæ pytania
string odpGracza[ 10 ];
do {
system( "CLS" );
for( int i = 0; i < 10; i++ )
{
swap( wylosowane[ i ], wylosowane[ i + 1 ] ); //zamienia miejsami nasza standardowa tablice z wylosowanymi liczbymi z kolejn¹ przez co mozemy odpalac pare razy
int a = wylosowane[ i ]; //zmienna pomocnicza, switch sie wysypuje gdy zalezy od tablicy
cout << a << endl;
switch( a )
{
case 1:
cout << pytania[ wylosowane[ i ] ] << endl;
cout << odp[ i ][ 0 ] << " ";
cout << odp[ i ][ 1 ] << " ";
cout << odp[ i ][ 2 ] << " " << endl;
cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM :";
cin >> odpGracza[ i ];
break;
case 2:
cout << pytania[ wylosowane[ i ] ] << endl;
cout << odp[ i ][ 0 ] << " ";
cout << odp[ i ][ 1 ] << " ";
cout << odp[ i ][ 2 ] << " " << endl;
cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM :";
cin >> odpGracza[ i ];
break;
case 3:
cout << pytania[ wylosowane[ i ] ] << endl;
cout << odp[ i ][ 0 ] << " ";
cout << odp[ i ][ 1 ] << " ";
cout << odp[ i ][ 2 ] << " " << endl;
cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM :";
cin >> odpGracza[ i ];
break;
case 4:
cout << pytania[ wylosowane[ i ] ] << endl;
cout << odp[ i ][ 0 ] << " ";
cout << odp[ i ][ 1 ] << " ";
cout << odp[ i ][ 2 ] << " " << endl;
cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM :";
cin >> odpGracza[ i ];
break;
case 5:
cout << pytania[ wylosowane[ i ] ] << endl;
cout << odp[ i ][ 0 ] << " ";
cout << odp[ i ][ 1 ] << " ";
cout << odp[ i ][ 2 ] << " " << endl;
cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM :";
cin >> odpGracza[ i ];
break;
case 6:
cout << pytania[ wylosowane[ i ] ] << endl;
cout << odp[ i ][ 0 ] << " ";
cout << odp[ i ][ 1 ] << " ";
cout << odp[ i ][ 2 ] << " " << endl;
cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM :";
cin >> odpGracza[ i ];
break;
case 7:
cout << pytania[ wylosowane[ i ] ] << endl;
cout << odp[ i ][ 0 ] << " ";
cout << odp[ i ][ 1 ] << " ";
cout << odp[ i ][ 2 ] << " " << endl;
cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM :";
cin >> odpGracza[ i ];
break;
case 8:
cout << pytania[ wylosowane[ i ] ] << endl;
cout << odp[ i ][ 0 ] << " ";
cout << odp[ i ][ 1 ] << " ";
cout << odp[ i ][ 2 ] << " " << endl;
cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM :";
cin >> odpGracza[ i ];
break;
case 9:
cout << pytania[ wylosowane[ i ] ] << endl;
cout << odp[ i ][ 0 ] << " ";
cout << odp[ i ][ 1 ] << " ";
cout << odp[ i ][ 2 ] << " " << endl;
cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM :";
cin >> odpGracza[ i ];
break;
case 0:
cout << pytania[ wylosowane[ i ] ] << endl;
cout << odp[ i ][ 0 ] << " ";
cout << odp[ i ][ 1 ] << " ";
cout << odp[ i ][ 2 ] << " " << endl;
cout << "PROSZE POTWIERDZIC ODPOWIEDZ ENTEREM :";
cin >> odpGracza[ i ];
break;
default:
break;
}
}
cout << "CZY CHCESZ POWTORZYC TEST? [T\\N]: " << endl;
cout << "PROSZE POTWIERDZIC ENTEREM" << endl;
cin >> kontynuowanie;
} while( kontynuowanie == "T" || kontynuowanie == "t" );
return 0;
}