od niedawna zaczalem pisac w c++;
moje umiejetnosci sa na poziomie level 2 ~ noob
wiec prosze o wyrozumienie gdyby okazalo sie ze nie zauwazylem smiesznie prostego bledu;
program pokazany ponizej mial na celu wylosowac trzy niepowtarzalne pytania (z naciskiem na "niepowtarzalne"),
ale zamiast tego program wywala czesto w losowym momencie a dwa pierwsze pytania sie za kazdym razem powtarzaja;
#include <iostream>
#include <time.h>
#include <windows.h>
using namespace std;
short l0,l1[3],l2,l3;
string n0;
void pytania();
short los_bez_powt();
int main()
{
srand(time(NULL));
l0=los_bez_powt();
pytania();
l0=los_bez_powt();
pytania();
l0=los_bez_powt();
pytania();
cout <<"Zdobyles: "<<l3<<" puntkow";
}
short los_bez_powt()
{
for (int i;i<=0;)
{
l2=rand()%3+1;
if ((l2!=l1[0]&&l2!=l1[1]&&l2!=l1[2]))
{
i+=1;
return l2;
}
}
}
void pytania()
{
switch (l0)
{
case 1: cout << "Ile skrzydel ma ptak?: ";
cin>>n0;
if (n0=="2")
{
cout<< "Poprawna odpowiedz - zdobywasz 1 punkt" <<endl;
l1[0]+=1;
l3+=1;
break;
}
else
{
cout<< "bledna odpowiedz - brak puntku" <<endl;
l1[0]+=1;
break;
}
case 2: cout << "Ile jest palcow u jednej dloni czlowieka?: ";
cin>>n0;
if (n0=="5")
{
cout<< "Poprawna odpowiedz - zdobywasz 1 punkt"<<endl;
l1[1]+=2;
l3+=1;
break;
}
else
{
cout<< "bledna odpowiedz - brak puntku"<<endl;
l1[1]+=2;
break;
}
case 3: cout << "Ile nog ma pajak?: ";
cin>>n0;
if (n0=="8")
{
cout << "Poprawna odpowiedz - zdobywasz 1 punkt"<<endl;
l1[2]+=3;
l3+=1;
break;
}
else
{
cout<< "bledna odpowiedz - brak puntku"<<endl;
l1[2]+=3;
break;
}
default: break;
}
}
ale to ze nie dziala nie jest najciekawsze(...) najciekawszym jest za to to ze jesli usune void pytania(); oraz kod z void pytania(); wkleje do
int main() na miejsce pytania() (czyli wkleje ten sam kod 3 razy zamiast tworzyc void pytania) to w magiczny sposob program zaczyna dzialac jak nalezy...
prosze o wyedukowanie mnie jesli komus by sie chcialo