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

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

Войти
Регистрация
Восстановить пароль
 
 
Hsac
13 / 13 / 1
Регистрация: 30.06.2013
Сообщений: 157
#1

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

25.06.2014, 03:47. Просмотров 749. Ответов 21
Метки нет (Все метки)

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

найти среднее арифметическое всех элементов массива, кроме элементов... C++
Определить, сколько элементов двумерного массива больше всех элементов на главной диагонали C++
Найти элемент массива, наиболее близкий к среднему значению всех элементов массива C++
C++ Написать программу, вычисляющую среднее арифметическое всех элементов массива из 200 элементов
C++ Определить кол-во элементов массива, которые больше среднеарифметического значения всех элементов массива
Cделать вывод массива на экран по 15 чисел в строку C++
C++ Cделать проверку по ключу
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lawr
359 / 253 / 122
Регистрация: 09.05.2014
Сообщений: 761
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
Сообщений: 157
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
Сообщений: 157
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
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
Сообщений: 157
25.06.2014, 10:46  [ТС]     Cделать проверку на истинность всех элементов массива bool #8
UP проблема не решена все ответы неверные
и проверяют только первый элемент
очень нужно правильное решение

Добавлено через 29 минут
UP:
Тамика
Котовчанин
867 / 447 / 135
Регистрация: 16.02.2010
Сообщений: 2,729
Записей в блоге: 27
25.06.2014, 10:52     Cделать проверку на истинность всех элементов массива bool #9
Цитата Сообщение от Hsac Посмотреть сообщение
UP:
А можно Ваши наработки? Что у Вас не работает? Какой код?
zss
Модератор
Эксперт С++
6192 / 5795 / 1877
Регистрация: 18.12.2011
Сообщений: 14,805
Завершенные тесты: 1
25.06.2014, 10:55     Cделать проверку на истинность всех элементов массива bool #10
Цитата Сообщение от Hsac Посмотреть сообщение
как сделать проверку на истинность всех элементов массива?
Уточните вопрос, правильно ли
"Проверить, верно ли, что все элементы массива истина"
или
"Вывести номера истинных элементов"
Тамика
Котовчанин
867 / 447 / 135
Регистрация: 16.02.2010
Сообщений: 2,729
Записей в блоге: 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
672 / 275 / 12
Регистрация: 31.03.2013
Сообщений: 1,338
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
Сообщений: 157
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
Модератор
Эксперт С++
6192 / 5795 / 1877
Регистрация: 18.12.2011
Сообщений: 14,805
Завершенные тесты: 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
2537 / 1302 / 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
Сообщений: 157
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
1888 / 1743 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
25.06.2014, 11:41     Cделать проверку на истинность всех элементов массива bool #18
Hsac, что в твоём понимании означает "проверяет только один элемент"?
для массива {true, false, false, true} цикл пройдёт до первого false и вернёт false! Всё верно! Так и должно работать! Что не так?
zss
Модератор
Эксперт С++
6192 / 5795 / 1877
Регистрация: 18.12.2011
Сообщений: 14,805
Завершенные тесты: 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 клавиатуры массив из 5 элементов, найти среднее арифметическое всех элементов массива C++
Определить сколько в массиве элементов, равных сумме всех элементов массива C++
Из всех положительных элементов массива вычесть элемент с номером k[l], из всех отрицательных - число n C++
Найти сумму всех элементов массива, кроме элементов с номерами от K до L C++
Найти разность между произведением всех положительных элементов массива и суммой модулей всех отрицательных C++

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

Или воспользуйтесь поиском по форуму:
soon
2537 / 1302 / 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
Ответ Создать тему
Опции темы

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