Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 02.12.2016
Сообщений: 10

Заполнить массив заданного размера нулями и единицами по указанному принципу

20.01.2017, 08:36. Показов 2727. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят дали задачу не пойму как ее решить, Заполнить массив из 100 элементов нулями и единицами следующим образом: 1,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.01.2017, 08:36
Ответы с готовыми решениями:

Заполнить двумерный массив единицами и нулями в определенной последовательности
ребят, помогите, в голову никак не укладывается, нужно заполнить двумерный массив Arr значениями "0" и "1" в такой...

Заполнить двумерный массив нулями и единицами в шахматном порядке
Помогите пожалуйста с задачими га языке с++ Заполнить двумерный массив размером n×n единицами и нулями таким образом, чтобы единицы...

Как рандомно заполнить одномерный массив единицами и нулями?
как рандомно заполнить одномерный массив единицами и нулями???

12
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
20.01.2017, 08:57
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

Можно по разному решить задачу. Ну вот мой метод:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
    const int n = 100;
    vector<int> vec;
    
    int numUnit = 1;
    int numZero = 2;    
    while( vec.size() < n )
    {        
        for( auto j = 0; j < numUnit; j++ )
            vec.push_back( 1 );
            
        for( auto j = 0; j < numZero; j++ )
            vec.push_back( 0 );   
            
        numUnit++;
        numZero++;
    }
    
    for( auto j = 0; j < n; j++ )
        cout << vec[j] << endl;
}
2
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
20.01.2017, 09:35
TheraFlu, вот мой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
Заполнить массив из 100 элементов нулями и единицами
следующим образом: 1,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1
*/
 
#include <iostream>
 
template <typename T>
unsigned int fill
    (
        T & arr,
        unsigned int start_index,
        unsigned int number_of_elements,
        bool value
    )
{
    unsigned int current_index = start_index;
    for( unsigned int i = 0; i < number_of_elements; ++i )
    {
        arr[current_index] = value;
        ++current_index;
    }
 
    return current_index;
}
 
int main()
{
    const unsigned int ARR_SIZE = 100;
    bool arr[ARR_SIZE];
 
    arr[0] = true;
    unsigned int start_index = 1;
    unsigned int num_of_elems = 2;
    while ( start_index < ARR_SIZE )
    {
        start_index = fill( arr, start_index, num_of_elems, false );
        start_index = fill( arr, start_index, num_of_elems, true );
        ++num_of_elems;
    }
 
    for ( unsigned int i = 0; i < ARR_SIZE; ++i )
        std::cout << arr[i] << " ";
 
    return 0;
}
2
0 / 0 / 0
Регистрация: 02.12.2016
Сообщений: 10
20.01.2017, 09:49  [ТС]
Спасибо большое, сейчас экзамен будет, не мог решить это задание в билетах)
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
20.01.2017, 10:09
TheraFlu, ну или полностью на шаблонных функциях можно сделать (не забудьте включить поддержку стандарта C++11):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
Заполнить массив из 100 элементов нулями и единицами
следующим образом: 1,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1
*/
 
#include <iostream>
#include <iterator>
 
template <typename T>
unsigned int fill_part_of
    (
        T & arr,
        unsigned int start_index,
        unsigned int number_of_elements,
        bool value
    )
{
    unsigned int current_index = start_index;
    for( unsigned int i = 0; i < number_of_elements; ++i )
    {
        arr[current_index] = value;
        ++current_index;
    }
 
    return current_index;
}
 
template <typename T>
void fill
    (
        T & arr,
        unsigned int start_index,
        unsigned int & number_of_elements
    )
{
    while ( std::begin( arr ) + start_index < std::end( arr ) )
    {
        start_index = fill_part_of( arr, start_index, number_of_elements, false );
        start_index = fill_part_of( arr, start_index, number_of_elements, true );
        ++number_of_elements;
    }
}
 
template <typename T>
void show( const T & arr)
{
    for ( const auto & elem : arr )
        std::cout << elem << " ";
}
 
int main()
{
    const unsigned int ARR_SIZE = 100;
    bool arr[ARR_SIZE];
    arr[0] = true;
    unsigned int start_index = 1;
    unsigned int number_of_elements = 2;
    fill( arr, start_index, number_of_elements );
    show( arr );
}
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
20.01.2017, 10:23
TheraFlu, ну, или можно упростить мой предыдущий код, если пойти на некоторые жертвы (создать две глобальные переменные):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
Заполнить массив из 100 элементов нулями и единицами
следующим образом: 1,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1
*/
 
#include <iostream>
#include <iterator>
 
unsigned int current_index = 1;
unsigned int number_of_elements = 2;
 
template <typename T>
void fill_part_of( T & arr, bool value )
{
    for( unsigned int i = 0; i < number_of_elements; ++i )
    {
        arr[current_index] = value;
        ++current_index;
    }
}
 
template <typename T>
void fill( T & arr )
{
    while ( std::begin( arr ) + current_index < std::end( arr ) )
    {
        fill_part_of( arr, false );
        fill_part_of( arr, true );
        ++number_of_elements;
    }
}
 
template <typename T>
void show( const T & arr)
{
    for ( const auto & elem : arr )
        std::cout << elem << " ";
}
 
int main()
{
    const unsigned int ARR_SIZE = 100;
    bool arr[ARR_SIZE];
    arr[0] = true;
    fill( arr );
    show( arr );
}
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
20.01.2017, 10:32
Цитата Сообщение от gru74ik Посмотреть сообщение
пойти на некоторые жертвы (создать две глобальные переменные)
А если мы фанаты инкапсуляции, то можно и вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
Заполнить массив из 100 элементов нулями и единицами
следующим образом: 1,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1
*/
 
#include <iostream>
#include <iterator>
 
template <typename T>
void fill_part_of
    (
        T & arr,
        unsigned int & current_index,
        unsigned int & number_of_elements,
        bool value
    )
{
    for( unsigned int i = 0; i < number_of_elements; ++i )
    {
        arr[current_index] = value;
        ++current_index;
    }
}
 
template <typename T>
void fill( T & arr )
{
    arr[0] = true;
    unsigned int current_index = 1;
    unsigned int number_of_elements = 2;
    while ( std::begin( arr ) + current_index < std::end( arr ) )
    {
        fill_part_of( arr, current_index, number_of_elements, false );
        fill_part_of( arr, current_index, number_of_elements, true );
        ++number_of_elements;
    }
}
 
template <typename T>
void show( const T & arr)
{
    for ( const auto & elem : arr )
        std::cout << elem << " ";
}
 
int main()
{
    const unsigned int ARR_SIZE = 100;
    bool arr[ARR_SIZE];
    fill( arr );
    show( arr );
}
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
20.01.2017, 20:36
gru74ik, Так какой же быстрее?
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
20.01.2017, 20:48
Bretbas, я как-то про скорость не думал. В ТЗ ничего не было про скорость.

Добавлено через 10 минут
Bretbas, лично мне последний вариант больше всех нравится. Функция main() в три-четыре строчки вызывает у меня почти что физическое удовольствие
1
0 / 0 / 0
Регистрация: 02.12.2016
Сообщений: 10
21.01.2017, 12:47  [ТС]
все спасибо экзамен сдал на 4 правда препод сказал что мы такое не учили еще, пришлось выкручиваться
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
21.01.2017, 12:48
TheraFlu, какой вариант использовал?
0
0 / 0 / 0
Регистрация: 02.12.2016
Сообщений: 10
21.01.2017, 12:50  [ТС]
первый, он быстрее всего пришел, а экзамен уже шел)
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
21.01.2017, 18:31
gru74ik,
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.01.2017, 18:31
Помогаю со студенческими работами здесь

Целочисленный массив заполнить нулями и единицами, расположив их в шахматном порядке
Целочисленный массив K(n,n) заполнить нулями и единицами, расположив их в шахматном порядке

Заполнить двумерный массив размером n Х n единицами и нулями в шахматном порядке
4) Заполнить двумерный массив размером n Х n единицами и нулями таким образом, чтобы единицы размещались так, как размещаются на...

Целочисленный массив a(n, n) заполнить нулями и единицами, расположив их в шахматном порядке.
Помогите найти ошибку в программе!!! При запуске все работает, но зависает с невозможностью выйти из окна... Программа Borland С++... ...

Целочисленный массив заполнить нулями и единицами, расположив их в шахматном порядке
3. Целочисленный массив К(m,n) заполнить нулями и единицами, расположив их в шахматном пордяке.

Заполнить двумерный массив размером n*n единицами и нулями как на шахматной доске
Заполнить двумерный массив размером n*n единицами и нулями таким образом, чтобы единицы размещались так, как размещаются на шахматной доске...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru