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

Czemu jak podaje wieksza wartosc niz 3 to program sie wysypuje ?

Cloud VPS
0 głosów
210 wizyt
pytanie zadane 30 czerwca 2015 w C i C++ przez Pixel040 Gaduła (3,100 p.)
otwarte ponownie 2 lipca 2015 przez Pixel040
#include <iostream>
#include <cstdlib>
#include <windows.h>

using namespace std;

int main()
{
    string tab[3][3];

    for(int i=0; i<3; i++)
    {
        tab[i][0]="-";
        tab[i][1]="-";
        tab[i][2]="-";
    }

    int tura=0;

    for(;;)
    {
        if(tura%2==0)   cout<<"Gracz 1 = X\n";
        else            cout<<"Gracz 2 = O\n";

        cout<<" "<<tab[0][0]<<" "<<tab[1][0]<<" "<<tab[2][0]<<" "<<endl;
        cout<<" "<<tab[0][1]<<" "<<tab[1][1]<<" "<<tab[2][1]<<" "<<endl;
        cout<<" "<<tab[0][2]<<" "<<tab[1][2]<<" "<<tab[2][2]<<" "<<endl;

        int x,y;

        cout<<"Ktory znak zmienic: ";
        cin>>x;
        cin>>y;

        if((x==1||2||3)&&(y==1||2||3))
        {

            if(tab[x-1][y-1]=="-")
            {
                if(tura%2==0)   tab[y-1][x-1]="X";
                else            tab[y-1][x-1]="O";

                tura++;
            }
            else
            {
                cout<<"To miejsce jest zajete!"<<endl;
                Sleep(1500);
            }
        }
        else
        {
            cout<<"Podales zle dane!";
        }

        system("cls");

    }
    return 0;
}

A tak wogle to jest masa bledow

1 odpowiedź

+3 głosów
odpowiedź 30 czerwca 2015 przez Buby Pasjonat (19,590 p.)
wybrane 30 czerwca 2015 przez Pixel040
 
Najlepsza

Tak nie buduje się warunków... ->  if((x==1||2||3)&&(y==1||2||3)), bo w tym wypadku zawsze uzyskujemy prawdę - domyślnie wartość większa od zera konwertowana jest na True, czyli prawdę. Z tego wynika, że pierwsza i druga część warunku jest prawdziwa, bo sprawdzane jest wyrażenie x==1 ||  2, czyli prawda oraz || 3 czyli także prawda.

Spróbuj w ten sposób:

 if((x==1|| x==2|| x==3)&&(y==1|| y==2|| y==3))

 

komentarz 30 czerwca 2015 przez Pixel040 Gaduła (3,100 p.)
Wielkie DZIEKI

Podobne pytania

0 głosów
4 odpowiedzi 924 wizyt
0 głosów
1 odpowiedź 979 wizyt

93,485 zapytań

142,417 odpowiedzi

322,763 komentarzy

62,896 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

Kursy INF.02 i INF.03
...