• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z poleceniem "||"(or)

Object Storage Arubacloud
0 głosów
179 wizyt
pytanie zadane 11 marca 2016 w C i C++ przez Suchy Nowicjusz (120 p.)

Witam! Od niedawna zacząłem uczyć się programowania. Mam pewien problem. Mianowicie chodzi o polecenie "||" (or). if spełnia się nawet jeśli nie jest spełniony tj. nie =true.

cout<<"Witaj w symulatorze lotto! Wylosuje ci 6 liczb od 1 do 49! Wybierzesz 6 liczb. Jesli beda takie same jak moje - wygrales. Podaj swoje liczby:"<<endl;
  cin>>q;cout<<endl;
  cin>>w;cout<<endl;
  cin>>e;cout<<endl;
  cin>>r;cout<<endl;
  cin>>t;cout<<endl;
  cin>>y;cout<<endl;
  system("cls");
if (q||w||e||r||t||y>49)
{
    cout<<"Liczby musza byc mniejsze od lub rowne 49";
    Sleep(3000);
    return 0;
}

 

4 odpowiedzi

+2 głosów
odpowiedź 11 marca 2016 przez mrcnsct Nałogowiec (36,390 p.)

Powinno być:

if ((q>49)||(w>49)||(e>49)||(r>49)||(t>49)||(y>49))
{
    cout<<"Liczby musza byc mniejsze od lub rowne 49";
    Sleep(3000);
    return 0;
}

Liczba różna od 0 ma wartość logiczną 1, więc Twój if wykona się, jeśli chociaż jedna zmienna z q,w,e,r,t będzie różna od 0.

+1 głos
odpowiedź 11 marca 2016 przez nerdxg Obywatel (1,760 p.)
q>49 || w>49 || e>49 ... itd

Oddzielny warunek dla innej zmiennej
0 głosów
odpowiedź 11 marca 2016 przez Patryk Krajewski Nałogowiec (26,170 p.)
przywrócone 11 marca 2016 przez Patryk Krajewski
Taka instrukcja jest nie możliwa. Najlepiej użyć tu tablicy i w niej umieścić te wszystkie liczby. Utworzyć zmienną bool. Potem pętle for(int i = 0; i < rozmiar_tablicy; i++) a w niej ifa (tablica[i] <= 49 &&  tablica[i] >= 1 ) {zmienna_bool = false} po wyjściu z pętli robisz ifa(zmienna_bool == false) {//Są za duże} else{spełniają}

Ja bym to tak zrobił pewnie jest lepszy sposób. Byś mógł zrobić jeszcze ifa( (q <= 49) && (w <= 49) && (e <= 49) ) i tak dalej, ale przy większej ilości liczb nie miało by to sensu.

P.S: Pamiętaj że || oznacza lub a && i. Przecież w lotto każda liczba jest mniejsza niż 49 a nie tylko niektóre.
0 głosów
odpowiedź 11 marca 2016 przez Einstein21 Obywatel (1,420 p.)
if (q||w||e||r||t||y>49)

Co to w ogóle za zapis?!?!

Każdy warunek musi być zapisany osobno. Czyli:

if (q>49 || w>49 || e>49 || r>49 || t>49 || y>49)

A poza tym ten return mi nie pasuje, użyj system( clr ) do wyczyszczenia ekranu i wszystko zacznie się od nowa.

Podobne pytania

0 głosów
1 odpowiedź 98 wizyt
pytanie zadane 17 marca 2016 w PHP przez niezalogowany
0 głosów
1 odpowiedź 221 wizyt
0 głosów
1 odpowiedź 387 wizyt
pytanie zadane 20 czerwca 2018 w C i C++ przez Hiskiel Pasjonat (22,830 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...