Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
meJevin
158 / 150 / 92
Регистрация: 18.11.2015
Сообщений: 677
Завершенные тесты: 1
1

Заполнить массив по условию

30.01.2016, 19:22. Просмотров 853. Ответов 5
Метки нет (Все метки)

Привет, помогите KPACUBO заполнить массив так, чтобы последующий элемент был равен предыдущему. Подсчет начинается с единицы.
У меня вот такая НЕКРАСОТА вышла:
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
#include <iostream>
 
int main() {
 
    const int rows = 3; const int colums = 3;
    long int mas[rows][colums];
 
    for (int i = 0; i < colums; i++) {
        for (int j = 0; j < rows; j++) {
            if (i == 0 && j == 0)
                mas[j][i] = 1;
            else if (i == 0)
                mas[j][i] = mas[j - 1][i] + 1;
            else if (i == 1 && j == 0)
                mas[j][i] = mas[rows - 1][i - 1] + 1;
            else if (i == 1)
                mas[j][i] = mas[j - 1][i] + 1;
            else if (i == 2 && j == 0)
                mas[j][i] = mas[rows - 1][i - 1] + 1;
            else if (i == 2)
                mas[j][i] = mas[j - 1][i] + 1;
        }
    }
 
    std::cout << "=============" << std::endl;
    for (int i = 0; i < colums; i++) {
        std::cout << "| ";
        for (int j = 0; j < rows; j++) {
            std::cout << mas[j][i] << " | ";
        }
        std::cout << std::endl << "=============" << std::endl;
    }
}
И желательно так, чтобы я смог изменить rows и colums и он продолжал работать.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2016, 19:22
Ответы с готовыми решениями:

Заполнить вещественный массив согласно условию
Помогите решить! Создать вещественный массив А из N элементов для хранения значений элементов...

Двумерный массив заполнить единицами по условию
Доброго времени суток. Прошу помочь с задачкой. Дан двумерный массив 9х9, заполненный нулями....

Заполнить массив числами, удовлетворяющими условию
не могу найти ошибку(думаю она где-то в циклах). мне надо в массив положить первые пять чисел...

Как заполнить массив числами, удовлетворяющими какому-то условию?
Здравствуйте, помогите, пожалуйста, только начинаю изучать С++. Ситуация такая: Дано целое число,...

Заполнить массив элементами заданной квадратной матрицы, удовлетворяющими условию
Дан массив A. Заполните массив В по следующему условию, если в строке массива А есть число меньше...

5
SergioO
169 / 185 / 90
Регистрация: 13.12.2015
Сообщений: 1,004
30.01.2016, 19:58 2
Цитата Сообщение от meJevin Посмотреть сообщение
чтобы последующий элемент был равен предыдущему
тогда все элементы массива будут равны между собой

C++
1
long mas[rows][columns]={CONST};
0
meJevin
158 / 150 / 92
Регистрация: 18.11.2015
Сообщений: 677
Завершенные тесты: 1
30.01.2016, 20:11  [ТС] 3
Цитата Сообщение от SergioO Посмотреть сообщение
равны между собой
Ой, там ошибка! Предыдущему плюс один*
0
sourcerer
Модератор
Эксперт CЭксперт С++
4959 / 2145 / 326
Регистрация: 20.02.2013
Сообщений: 5,582
Записей в блоге: 24
Завершенные тесты: 1
30.01.2016, 20:27 4
Лучший ответ Сообщение было отмечено meJevin как решение

Решение

meJevin, так пойдёт?

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
#include <iostream>
 
int main() {
 
    const int rows = 3;
    const int colums = 3;
 
    long int mas[rows][colums];
 
    long int value = 1;
    for (int i = 0; i < colums; i++) {
        for (int j = 0; j < rows; j++) {
            mas[j][i] = value;
            ++value;
        }
    }
 
    std::cout << "=============" << std::endl;
    for (int i = 0; i < colums; i++) {
        std::cout << "| ";
        for (int j = 0; j < rows; j++) {
            std::cout << mas[j][i] << " | ";
        }
        std::cout << std::endl << "=============" << std::endl;
    }
}
1
meJevin
158 / 150 / 92
Регистрация: 18.11.2015
Сообщений: 677
Завершенные тесты: 1
30.01.2016, 20:52  [ТС] 5
Цитата Сообщение от gru74ik Посмотреть сообщение
так пойдёт?
Да, спасибо огромное!
0
hoggy
Эксперт С++
7402 / 3329 / 688
Регистрация: 15.11.2014
Сообщений: 7,615
Завершенные тесты: 1
31.01.2016, 04:35 6
http://rextester.com/BBK71997


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
#include <iostream> 
#include <algorithm>
#include <iomanip>
 
int main () 
{
    int arr[3][6]={};
    
    int last = 0;
    const auto lambda = [&last](){ return ++last; };
    
    
    int* p = (int*)arr;
    
    std::generate (p, p + 3*6, lambda);
    
    std::cout << "int arr = {";
    for (const auto& a: arr)
    {
        std::cout << "\n";
        for (const auto& i: a)
            std::cout << ' ' << std::setw(2) << std::setfill('0') << i;
    }
    std::cout << "\n};\n";
}
0
31.01.2016, 04:35
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2016, 04:35

Заполнить одномерный массив, обработав данные двумерного массива по заданному условию
Создать программу, которая вводит c клавиатуры двумерный массив целых чисел a, заполняет одномерный...

Заполнить динамический массив случайными числами и реализовать функции работы с массивом согласно условию
Всем доброго времени суток!) Уважаемые знатоки и пользователи, помогите, пожалуйста, написать...

Заполнить матрицу символом * согласно условию
Задание 2. Сформировать двумерный массив A , содержащий символ &quot;*&quot; в соответствии с вариантом;...


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

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

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