#include <cmath>
#include <conio.h>
using namespace std;
int random(int Min, int Max) { return rand() % Max + Min; }
int main()
{
srand(static_cast<unsigned int>(time(NULL)));
unsigned aLiczby[2];
for (int i = 0; i < 2; ++i)
aLiczby[i] = 0;
for (int i = 0; i < 9;)
{
// wylosowanie liczby
aLiczby[i] = rand() % 9 + 1;
bool bPowtarzaSie = false;
for (int j = 0; j < i; ++j)
{
if (aLiczby[j] == aLiczby[i])
{
bPowtarzaSie = true;
break;
}
}
// jeżeli się nie powtarza, przechodzimy do następnej liczby
if (!bPowtarzaSie)
++i;
}
cout << "Rozwiąż działanie:";
for (int i = 0; i < 1; ++i)
cout << aLiczby[1] << "*" << aLiczby[2] << "=";
int wynik = aLiczby[1] * aLiczby[2];
cin >> wynik;
if (wynik == aLiczby[1] * aLiczby[2]) {
cout << "brawo";
getch();
}
}
Trochę przekombinowałeś z tym losowaniem - spróbuj tak:
int a = random(...);
int b;
do {
b = random(...);
} while (b == a);
cout << "Rozwiąż działanie:";
/* ... */
Btw, co konkretnie nie działa?
Nue wiem co nie działa. Program normalnie sie uruchamia ale po wpisaniu wyniku nie wyskakuje brawo tylko jakies litery.
Jakie litery?
Najlepiej podeślij screenshot.
Musisz być precyzyjny - żaden z nas nie siedzi ani w Twojej głowie, ani przy Twoim komputerze, a ciągnąć za język też nie zawsze się chce.
Tu podpowiedź - napisz dokładnie jakiego rezultatu działania programu oczekujesz, a jaki otrzymujesz (ewentualnie zdjęcie ekranu z wynikiem też będzie ok)
Wynik tg programu to np:
5*3=
-po rowna sie uzytkownik pisze wynik
Jesli jest dobry powinno wyskoczyc "brawo" ale tak sie nie dzieje
Powinieneś odwoływać się do aLiczby[0]
i aLiczby[1]
, ponieważ tablice są iterowane od zera.
Na przyszłość pamiętaj, aby umieścić jak najwięcej informacji, zrzutów ekranu itd. w poście otwierającym wątek - wtedy całość dałoby się rozwiązać w ciągu minuty ;-)
Okej dzięki
Po zmianie dalej nie działa
Pokaż aktualny kod.
Odpowiem po skl bo mam tel rozladowany
Takie coś wychodzi
Patryk27 napisał(a):
Pokaż aktualny kod.
Jak aktualny
On jest ciągle taki sam xd
Napisałeś:
Po zmianie dalej nie działa
Zatem wprowadziłeś jakąś zmianę i chciałbym zobaczyć kod w aktualnej wersji.
Wiesz że zamiast trzaskać trzy posty mógłbyś mi to po prostu podesłać i moglibyśmy iść z tematem dalej? ;-p
Po zmianie z : aLiczby[1] i aLiczby[2] na aLiczby[0] i aLiczby[1]
Wyślij cały kod.
#include <cmath>
#include <conio.h>
using namespace std;
int main()
{
unsigned aLiczby[2];
for (int i=0;i<2;++i)
aLiczby[i]=0;
for (int i=0; i<9; )
{
// wylosowanie liczby
aLiczby[i] = rand() %
9 + 1;
bool bPowtarzaSie = false;
for (int j = 0; j < i; ++j)
{
if (aLiczby[j] == aLiczby[i])
{
bPowtarzaSie = true;
break;
}
}
// jeżeli się nie powtarza, przechodzimy do następnej liczby
if (!bPowtarzaSie) ++i;
}
cout<<"Rozwiąż działanie:";
for (int i=0;i<1;++i)
cout<<aLiczby[1]<<"*"<<aLiczby[2]<<"=";
int wynik=aLiczby[1]*aLiczby[2];
cin>>wynik;
if (wynik==aLiczby[1]*aLiczby[2])
{
cout<<"brawo";
getch();
}
}
for (int i=0; i<9; ) {
aLiczby[i] = /* ... */
aLiczby
może przechować tylko dwie liczby (o indeksach 0
i 1
) - dlaczego próbujesz do środka wrzucić aż dziewięć?
Nwm to ma jakies znacze nie ze bedzie ich wiecej?
Powiedziałeś komputerowi: stwórz mi tablicę, w której umieszczę *maksymalnie* dwie liczby
(poprzez unsigned aLiczby[2];
), po czym próbujesz go środka włożyć ich więcej.
Tak, to ma znaczenie.
A jak masz samochód z 4 miejscami to ma znaczenie czy próbują tam wejść 3 czy 10 osób?
Działa!Dzieluję za pomoc i sory za kłopot i moją głupotę, jestem początkujacy co pewnie widać.
Rozumiem błąd jaki popełniłem
Pierwszy raz korzystam z tg serwisu