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

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

20.01.2017, 08:36. Показов 2705. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru