Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
#1

Почему функция возвращает неправильное значение - C++

09.05.2014, 19:20. Просмотров 433. Ответов 4
Метки нет (Все метки)

Пробовал дебажил функцию и каждый раз проверка проходит условие, хотя оно выполняется... в итоге возвращается false
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//проверка выиграшного хода
bool winBot()
{
    for(int i(0); i < 3; i++)
    {
            if( (((table[i][0] && table[i][1]) == 'O') && (table[i][2] != 'X')) )
                return true;
        else
            if( (((table[0][i] && table[1][i]) == 'O') && (table[2][i] != 'X')) )
                return true; 
        else
            if( (((table[0][0] && table[1][1]) == 'O') && (table[2][2] != 'X')) || (((table[0][2] && table[1][1]) == 'O') && (table[2][0] != 'X')) )  
                return true; 
    }
 
    //иначе
    return false;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2014, 19:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему функция возвращает неправильное значение (C++):

Почему функция не возвращает значение? - C++
По заданию из учебника, нужно написать небольшую поисковую систему, используя все полученные знания. Вот написал такую программу, но...

this возвращает неправильное значение - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class oops{ public: oops():key(10){} int key; oops&amp; oper1(int...

Почему функция всегда возвращает 0? - C++
bool trie_tree::consonants_check(char letter) { return tolower(letter) == ('w' || 'r' || 't' || 'p' || 's' || 'd' || 'f' || 'g' || 'h'...

Почему функция возвращает отрицательное число? - C++
Почему функция возвращает отрицательное число? Причём передаю в функцию s&lt;=31, т.е. всё должно поместиться. И как это можно исправить? ...

Почему функция atan возвращает значения фрагментарно - C++
Всем привет, нужно значение угла от мыши (x, y) до координаты (0,0) окна. Пишу следующее: double panel::checkSector(int x, int...

Почему функция atoi возвращает неожиданный результат? - C++
char chislo; int kol_OB; chislo = '2'; chislo = '4'; kol_OB = atoi(chislo); Почему kol_OB = 18?

4
ValeryS
Модератор
6679 / 5088 / 475
Регистрация: 14.02.2011
Сообщений: 17,081
09.05.2014, 19:23 #2
Цитата Сообщение от 007imran007 Посмотреть сообщение
(table[i][0] && table[i][1]) == 'O'
что ты этим хотел сказать?
0
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
09.05.2014, 19:25  [ТС] #3
Цитата Сообщение от ValeryS Посмотреть сообщение
что ты этим хотел сказать?
забыл упомянуть у меня 2-мерный массив (крестики-нолики), я имел ввиду, что если 2 клеточки == 'O' то нужно закрывать 3 и побеждать. i потому что он будет проверять 3 строки в цикле for
ну и table мой массив
0
ValeryS
Модератор
6679 / 5088 / 475
Регистрация: 14.02.2011
Сообщений: 17,081
09.05.2014, 19:30 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от 007imran007 Посмотреть сообщение
я имел ввиду, что если 2 клеточки == 'O' то нужно закрывать 3 и побеждать.
а знаешь что получилось
если table[i][0] истина( не равно 0) и table[i][1] истина то получить истину(1)
1 никак не равен 'O'(0х30) ни при каких условиях

следовательно, что ты хотел нужно записывать так
C++
1
if ( (table[i][0]=='O') && (table[i][1] == 'O') && (table[i][2] != 'X'))
1
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
09.05.2014, 20:13  [ТС] #5
Цитата Сообщение от ValeryS Посмотреть сообщение
следовательно, что ты хотел нужно записывать так
Код C++
1
if ( (table[i][0]=='O') && (table[i][1] == 'O') && (table[i][2] != 'X'))
большое спасибо, буду знать теперь))
0
09.05.2014, 20:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2014, 20:13
Привет! Вот еще темы с ответами:

Функция get() не возвращает значение - C++
Есть класс, в котором определен объект типа SDL_Surface*. Пытаюсь передать его в сторонний класс с помощью метода getScreen(), но он по...

Функция не возвращает значение - C++
Функция ничего не возвращает: int Return(int s) { return s; } Передаю в аргумент S целочисленную переменную, но результата в...

Функция не возвращает значение - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; #include &quot;stdafx.h&quot; using namespace std; const int max_size = 100; ...

Функция не возвращает значение - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int ca(int a) { int i,r; r = 0; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru