#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(0));
int w = 0;
int ww = -2;
for (int z = 0; z < 3; z++) {
cout << z << ". ";
for (int x = 0; x < 5; x++) {
int a = rand() % 2;
cout << a;
if (a == 1) {ww++; if (ww == 0) {w++;break;}
}
if (a == 0) { ww--; if (ww == 0) { w++; break;}
}
if (ww == 0) {w++;break;}
}
cout << endl;
}
cout << endl
<< endl
<< "wygrane:" << w << endl;
cout << "przegra:" << ww << endl;
}
Wynik:
- 10100
- 111
- 1100
wygrane:2
przegra:0Process returned 0 (0x0) execution time : 0.069 s
Press any key to continue.
Problem polega na tym, że nie znam c++ zbyt dobrze i nie wiem których narzędzi użyć aby program pracował tak jak tego chcę.
Podstawowe pożądane zasady działania programu:
**1.**Jeżeli program otrzymuje 1 dodaje 1 (ww++)
**2.**Jeżeli program otrzymuje 0 odejmuje 1 (ww–)
**3.**ww od samego początku ma wartość -2. Kiedy osiągnie wartość 0 dodaje w++ przerywając tym samym dalsze generowanie liczb.
Program liczy w inny sposób:
Liczy sobie (od początku przez wszystkie linie):
0. 10100
ww=-2 +1-1+1-1-1=-3
1. 111
(powinien zacząć od nowa ww=-2 i zaprzestać generować na 11 bez 3-ciej 1-nki dodając w++ ) program liczy dalej:
ww=-3+1+1+1=0 0=w+ (niby działa częściowo bo przestaje dalej generować)
2. 1100
(powinien zacząć od nowa ww=-2 i zaprzestać generować na 11 bez 00 dodając w++)
Program liczy jednak ww=0+1+1=2-1-1=0. Przestaje generować i wykonuje w++ jako że osiągnoł 0 od drugiej strony.
Starałem się opisać ten problem możliwie najprościej. Coś robię źle. Jeżeli chodzi o generowanie tylko 1 lini program działa tak jak tego oczekuję, lecz problem zaczyna się kiedy wrzucam to do pętli, i chce aby kod był powtórzony kilkukrotnie.
Z góry dziękuję za wspacie.
created
last reply
- 7
replies
- 1.2k
views
- 3
users
- 4
likes
- 2
links