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

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

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

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

09.05.2014, 19:20. Просмотров 366. Ответов 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;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2014, 19:20     Почему функция возвращает неправильное значение
Посмотрите здесь:

Функция не возвращает значение (консолька, си++) C++
C++ this возвращает неправильное значение
C++ Почему функция atan возвращает значения фрагментарно
C++ Функция get() не возвращает значение
C++ Функция возвращает странное значение
C++ Функция не возвращает значение
Функция не возвращает значение C++
Функция не возвращает значение C++
Функция возвращает неверное значение C++
C++ Почему функция возвращает отрицательное число?
C++ Почему функция atoi возвращает неожиданный результат?
C++ Почему функция всегда возвращает 0?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6446 / 4912 / 451
Регистрация: 14.02.2011
Сообщений: 16,283
09.05.2014, 19:23     Почему функция возвращает неправильное значение #2
Цитата Сообщение от 007imran007 Посмотреть сообщение
(table[i][0] && table[i][1]) == 'O'
что ты этим хотел сказать?
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
09.05.2014, 19:25  [ТС]     Почему функция возвращает неправильное значение #3
Цитата Сообщение от ValeryS Посмотреть сообщение
что ты этим хотел сказать?
забыл упомянуть у меня 2-мерный массив (крестики-нолики), я имел ввиду, что если 2 клеточки == 'O' то нужно закрывать 3 и побеждать. i потому что он будет проверять 3 строки в цикле for
ну и table мой массив
ValeryS
Модератор
6446 / 4912 / 451
Регистрация: 14.02.2011
Сообщений: 16,283
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'))
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'))
большое спасибо, буду знать теперь))
Yandex
Объявления
09.05.2014, 20:13     Почему функция возвращает неправильное значение
Ответ Создать тему
Опции темы

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