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

Cделать проверку на истинность всех элементов массива bool - C++

Восстановить пароль Регистрация
 
 
Hsac
13 / 13 / 1
Регистрация: 30.06.2013
Сообщений: 146
25.06.2014, 03:47     Cделать проверку на истинность всех элементов массива bool #1
есть массив из bool
как сделать проверку на истинность всех элементов массива?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2014, 03:47     Cделать проверку на истинность всех элементов массива bool
Посмотрите здесь:

не работает bool xor(bool a, bool b) C++
Найти элемент массива, наиболее близкий к среднему значению всех элементов массива C++
Удаление четных элементов массива,больших среднего арифметического всех элементов массива C++
C++ Определить кол-во элементов массива, которые больше среднеарифметического значения всех элементов массива
Cделать вывод массива на экран по 15 чисел в строку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lawr
 Аватар для lawr
342 / 236 / 114
Регистрация: 09.05.2014
Сообщений: 723
25.06.2014, 04:17     Cделать проверку на истинность всех элементов массива bool #2
ммммм...
C++
1
2
3
for (int i=0; i<size_of_array; i++)
if (Array[i]!=true)
break;
как-то так?
Hsac
13 / 13 / 1
Регистрация: 30.06.2013
Сообщений: 146
25.06.2014, 04:20  [ТС]     Cделать проверку на истинность всех элементов массива bool #3
спасибо
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
25.06.2014, 04:21     Cделать проверку на истинность всех элементов массива bool #4
Hsac, не первый элемент, а весь массив. :-)
Hsac
13 / 13 / 1
Регистрация: 30.06.2013
Сообщений: 146
25.06.2014, 04:22  [ТС]     Cделать проверку на истинность всех элементов массива bool #5
да затупил
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
25.06.2014, 04:23     Cделать проверку на истинность всех элементов массива bool #6
C++
1
2
3
for (int i=0; i<size_of_array; i++)
if (Array[i]) { если true, то выполняем код }
else { break; }
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
25.06.2014, 04:44     Cделать проверку на истинность всех элементов массива bool #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Hsac,
C++
1
2
3
4
5
6
bool check (bool *arr,int size)
{
    for(size_t i=0;i,size;++i)
        if(arr[i]==false) return false;
    return true;
}
Добавлено через 20 минут
там i<size
Hsac
13 / 13 / 1
Регистрация: 30.06.2013
Сообщений: 146
25.06.2014, 10:46  [ТС]     Cделать проверку на истинность всех элементов массива bool #8
UP проблема не решена все ответы неверные
и проверяют только первый элемент
очень нужно правильное решение

Добавлено через 29 минут
UP:
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
25.06.2014, 10:52     Cделать проверку на истинность всех элементов массива bool #9
Цитата Сообщение от Hsac Посмотреть сообщение
UP:
А можно Ваши наработки? Что у Вас не работает? Какой код?
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
25.06.2014, 10:55     Cделать проверку на истинность всех элементов массива bool #10
Цитата Сообщение от Hsac Посмотреть сообщение
как сделать проверку на истинность всех элементов массива?
Уточните вопрос, правильно ли
"Проверить, верно ли, что все элементы массива истина"
или
"Вывести номера истинных элементов"
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
25.06.2014, 10:56     Cделать проверку на истинность всех элементов массива bool #11
\
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main()
{
    bool* mas = new bool[10];
    for (int i = 0; i < 10; ++i)
    {
        mas[i] = rand()%2;
        std::cout << mas[i] << " ";
    }
 
    std::cout << std::endl;
 
    for (int i = 0; i < 10; ++i)
    {
        if (mas[i])
            std::cout << i << " element is true!\n";
    }
 
    system("pause>>null");
}
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,283
25.06.2014, 10:57     Cделать проверку на истинность всех элементов массива bool #12
C++
1
bool result = std::all_of( std::begin( arr ), std::end( arr ), true );
Hsac
13 / 13 / 1
Регистрация: 30.06.2013
Сообщений: 146
25.06.2014, 11:09  [ТС]     Cделать проверку на истинность всех элементов массива bool #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    for(int i=0; i<mCountBall; i++)
    {
        mBallFlag.push_back(false);
    }
/////////////////////// создаем массив из булеана с помощью вектора
 
for (int i=0; i<mBalls.size(); i++)
        {
            if (mBalls[i]->CHECK())   //CHECK возвращает тру если мяч упал  
            {
                mBallFlag[i]=true;  //ставим флажок тру если зачекили 
            }
        }
///////////////////////
и вот тут уже нужно проверять условие все ли мячи упали то есть если все элементы массива тру значит игра окончена
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
25.06.2014, 11:19     Cделать проверку на истинность всех элементов массива bool #14
Тогда функция из поста 7 Вам подходит.
Слегка подправленная
C++
1
2
3
4
5
6
bool check (bool *arr,int size)
{
    for(size_t i=0;i<size;++i)
        if(!arr[i]) return false;
    return true;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.06.2014, 11:25     Cделать проверку на истинность всех элементов массива bool #15
Voivoid, all_of последним аргументом пренимает унарный предикат, а не bool

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <algorithm>
 
int main()
{
    // C++14
    auto id = [] (auto x) { return x; };
 
    bool arr[4];
 
    bool result = std::all_of(std::begin(arr), std::end(arr), id);
 
    return 0;
}
Hsac
13 / 13 / 1
Регистрация: 30.06.2013
Сообщений: 146
25.06.2014, 11:32  [ТС]     Cделать проверку на истинность всех элементов массива bool #16
ZSS
я уже говорил такая функция проверяет только один элемент
soon
пишу на visual studio 2008 такой шайтан у меня не прокатит
Инь
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 3
25.06.2014, 11:39     Cделать проверку на истинность всех элементов массива bool #17
А ещё можно привести bool к int, сложить все значения и поделить на количество элементов массива. Если в результате получилось 1, то все true.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
25.06.2014, 11:41     Cделать проверку на истинность всех элементов массива bool #18
Hsac, что в твоём понимании означает "проверяет только один элемент"?
для массива {true, false, false, true} цикл пройдёт до первого false и вернёт false! Всё верно! Так и должно работать! Что не так?
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
25.06.2014, 11:41     Cделать проверку на истинность всех элементов массива bool #19
Цитата Сообщение от Hsac Посмотреть сообщение
такая функция проверяет только один элемент
Если все элементы истинны, то функция возвратит истину,
но при первом попавшимся ложном она возвращает ложь,
т.к. смысла нет проверять остальные.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2014, 11:42     Cделать проверку на истинность всех элементов массива bool
Еще ссылки по теме:

C++ Cделать проверку по ключу
C++ Найти сумму всех положительных элементов массива и среднее арифметическое всех элементов
Определить сколько в массиве элементов, равных сумме всех элементов массива C++

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.06.2014, 11:42     Cделать проверку на истинность всех элементов массива bool #20
Цитата Сообщение от Hsac Посмотреть сообщение
я уже говорил такая функция проверяет только один элемент
Можно подробнее?
Цитата Сообщение от Инь Посмотреть сообщение
А ещё можно привести bool к int, сложить все значения и поделить на количество элементов массива. Если в результате получилось 1, то все true.
А еще можно воспользоваться функцией std::count
Yandex
Объявления
25.06.2014, 11:42     Cделать проверку на истинность всех элементов массива bool
Ответ Создать тему
Опции темы

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