Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Hsac
13 / 13 / 3
Регистрация: 30.06.2013
Сообщений: 163
1

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

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

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

Cделать проверку по ключу
Помогите пожалуйста разобраться. В программе нужно сделать проверку по ключу,...

Найти сумму всех положительных элементов массива и среднее арифметическое всех элементов
Помогите написать программу: Дан массив A. Найти сумму всех положительных...

Надо сделать проверку на уникальность элементов массива
Есть вот такой вод код рабочий, но есть одно но надо сделать так чтобы...

Вернуть количество элементов массива, которые больше среднего значения всех элементов данного массива
Написать функцию, которая возвращает количество элементов массива, которые...

Найти максимальное значение элементов массива, а также номера всех элементов массива с этим значением
Дан массив из n элементов. Необходимо найти максимальное значение элементов...

21
lawr
372 / 266 / 478
Регистрация: 09.05.2014
Сообщений: 769
25.06.2014, 04:17 2
ммммм...
C++
1
2
3
for (int i=0; i<size_of_array; i++)
if (Array[i]!=true)
break;
как-то так?
1
Hsac
13 / 13 / 3
Регистрация: 30.06.2013
Сообщений: 163
25.06.2014, 04:20  [ТС] 3
спасибо
0
Esecman
38 / 26 / 12
Регистрация: 31.12.2013
Сообщений: 329
25.06.2014, 04:21 4
Hsac, не первый элемент, а весь массив. :-)
1
Hsac
13 / 13 / 3
Регистрация: 30.06.2013
Сообщений: 163
25.06.2014, 04:22  [ТС] 5
да затупил
0
Esecman
38 / 26 / 12
Регистрация: 31.12.2013
Сообщений: 329
25.06.2014, 04:23 6
C++
1
2
3
for (int i=0; i<size_of_array; i++)
if (Array[i]) { если true, то выполняем код }
else { break; }
1
cooller
565 / 533 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
25.06.2014, 04:44 7
Лучший ответ Сообщение было отмечено Hsac как решение

Решение

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
2
Hsac
13 / 13 / 3
Регистрация: 30.06.2013
Сообщений: 163
25.06.2014, 10:46  [ТС] 8
UP проблема не решена все ответы неверные
и проверяют только первый элемент
очень нужно правильное решение

Добавлено через 29 минут
UP:
0
Тамика
Котовчанин
919 / 463 / 195
Регистрация: 16.02.2010
Сообщений: 3,267
Записей в блоге: 32
25.06.2014, 10:52 9
Цитата Сообщение от Hsac Посмотреть сообщение
UP:
А можно Ваши наработки? Что у Вас не работает? Какой код?
1
zss
Модератор
Эксперт С++
7258 / 6703 / 4244
Регистрация: 18.12.2011
Сообщений: 17,693
Завершенные тесты: 1
25.06.2014, 10:55 10
Цитата Сообщение от Hsac Посмотреть сообщение
как сделать проверку на истинность всех элементов массива?
Уточните вопрос, правильно ли
"Проверить, верно ли, что все элементы массива истина"
или
"Вывести номера истинных элементов"
1
Тамика
Котовчанин
919 / 463 / 195
Регистрация: 16.02.2010
Сообщений: 3,267
Записей в блоге: 32
25.06.2014, 10:56 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");
}
1
Voivoid
708 / 280 / 16
Регистрация: 31.03.2013
Сообщений: 1,339
25.06.2014, 10:57 12
C++
1
bool result = std::all_of( std::begin( arr ), std::end( arr ), true );
1
Hsac
13 / 13 / 3
Регистрация: 30.06.2013
Сообщений: 163
25.06.2014, 11:09  [ТС] 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;  //ставим флажок тру если зачекили 
            }
        }
///////////////////////
и вот тут уже нужно проверять условие все ли мячи упали то есть если все элементы массива тру значит игра окончена
0
zss
Модератор
Эксперт С++
7258 / 6703 / 4244
Регистрация: 18.12.2011
Сообщений: 17,693
Завершенные тесты: 1
25.06.2014, 11:19 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;
}
0
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.06.2014, 11:25 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;
}
1
Hsac
13 / 13 / 3
Регистрация: 30.06.2013
Сообщений: 163
25.06.2014, 11:32  [ТС] 16
ZSS
я уже говорил такая функция проверяет только один элемент
soon
пишу на visual studio 2008 такой шайтан у меня не прокатит
0
Инь
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 3
25.06.2014, 11:39 17
А ещё можно привести bool к int, сложить все значения и поделить на количество элементов массива. Если в результате получилось 1, то все true.
0
Kuzia domovenok
2357 / 2091 / 494
Регистрация: 25.03.2012
Сообщений: 7,487
Записей в блоге: 1
25.06.2014, 11:41 18
Hsac, что в твоём понимании означает "проверяет только один элемент"?
для массива {true, false, false, true} цикл пройдёт до первого false и вернёт false! Всё верно! Так и должно работать! Что не так?
1
zss
Модератор
Эксперт С++
7258 / 6703 / 4244
Регистрация: 18.12.2011
Сообщений: 17,693
Завершенные тесты: 1
25.06.2014, 11:41 19
Цитата Сообщение от Hsac Посмотреть сообщение
такая функция проверяет только один элемент
Если все элементы истинны, то функция возвратит истину,
но при первом попавшимся ложном она возвращает ложь,
т.к. смысла нет проверять остальные.
1
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.06.2014, 11:42 20
Цитата Сообщение от Hsac Посмотреть сообщение
я уже говорил такая функция проверяет только один элемент
Можно подробнее?
Цитата Сообщение от Инь Посмотреть сообщение
А ещё можно привести bool к int, сложить все значения и поделить на количество элементов массива. Если в результате получилось 1, то все true.
А еще можно воспользоваться функцией std::count
1
25.06.2014, 11:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2014, 11:42

Определить кол-во элементов массива, которые больше среднеарифметического значения всех элементов массива
Сделать программу, к-рая случайно заполняет массив А (n&lt;30) целыми значениями....

Найти сумму элементов массива, равных среднему арифметическому всех элементов массива
здравствуйте я студентка первого курса и мы изучаем С и С++ работам в...

Удаление четных элементов массива,больших среднего арифметического всех элементов массива
Доброго времени суток! Помогите пожалуйста) Вот задание:Из массива удалить...


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

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

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