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

Робота с двухмерными массивами

15.10.2019, 16:05. Показов 1461. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеем мы двухмерный чаровский массив :

H e l l o
W o r l d
1 2 3 4 5
0 0 0 0 0
9 9 9 9 9

Мы его записывали и выводили в рядок. А как можно его перезаписать в столбик :

H W 1 0 9 e o 2 0 9 l r 3 0 9 l l 4 0 9 o d 5 0 9

C++
1
2
3
4
5
6
for (int i = 0; i < 5;++i) {
    for (int j = 0; j < 5; ++j) {
        std::cout << arr[j];
    }
    std::cout << "\n";
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2019, 16:05
Ответы с готовыми решениями:

Задача с двухмерными массивами.
Получить дейстивительную матрицу 7х7, первая строка которой задаётся формулой: , а вторая строка: , а кажая следующая сумма...

Работа с двухмерными массивами
Привет всем. Помогите пожалуйста. Нужно в двухмерном массиве 10х10 переставить столбцы в порядке увеличения количества элеменов=0 в...

Использование функций для работы с одномерными и двухмерными массивами
Привет всем!!!Помогите решить задачу=) Дано целое число N (&gt; 1), а также первый член A и знаменатель Q геометрической прогрессии....

8
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
15.10.2019, 16:19
Цитата Сообщение от АнтонВарушин Посмотреть сообщение
std::cout << arr[j];
замени на
C++
1
std::cout << arr[j] << std::endl;
endl - эо то же что и \n
0
0 / 0 / 0
Регистрация: 02.07.2019
Сообщений: 32
15.10.2019, 16:27  [ТС]
Но оно ничем не поможет, только в одну колонку выведет.
0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
15.10.2019, 16:36
Цитата Сообщение от kitsoRik Посмотреть сообщение
endl - эо то же что и \n
Не правда..
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
15.10.2019, 16:38
Лучший ответ Сообщение было отмечено АнтонВарушин как решение

Решение

АнтонВарушин, так устроит?
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
#include <iostream>
using namespace std;
 
int main()
{
    char arr[5][5] = 
    {
        {'H', 'e', 'l', 'l','o'},
        {'W', 'o', 'r', 'l','d'},
        {'1', '2', '3', '4','5'},
        {'0', '0', '0', '0','0'},
        {'9', '9', '9', '9','9'}
    };
    
    for (int i = 0; i < 5;++i) {
        for (int j = 0; j < 5; ++j)
            cout << arr[i][j];
        cout << endl;
    }
    cout << endl;
    for (int i = 0; i < 5;++i) {
        for (int j = 0; j < 5; ++j)
            cout << arr[i][j];
    }
    cout << endl;
    for (int i = 0; i < 5;++i) {
        for (int j = 0; j < 5; ++j)
            cout << arr[j][i];
    }
}
0
0 / 0 / 0
Регистрация: 02.07.2019
Сообщений: 32
15.10.2019, 16:40  [ТС]
Спасибо, а то уже замучался я)))
0
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
15.10.2019, 16:51
Цитата Сообщение от АнтонВарушин Посмотреть сообщение
только в одну колонку выведет.
Цитата Сообщение от АнтонВарушин Посмотреть сообщение
в столбик
Что не так?

Цитата Сообщение от Azazel-San Посмотреть сообщение
Не правда..
Да знаю, но для объяснения работы сойдет.

Могу только добавить что endl еще очищает поток
0
0 / 0 / 0
Регистрация: 02.07.2019
Сообщений: 32
15.10.2019, 17:07  [ТС]
А если усложнить задание:
у нас есть одномерный массив и ми его выводим на экран как двухмерный массив.

C++
1
2
3
4
5
6
7
8
9
char arr[10]{'H','e','l','l','o','W','o','r','l','d};
int kay=3;
int count = 0;
    for (int i = 0; i < 10;++i) {
        for (int j = 0; j < key; ++j) {
            std::cout << arr[count++];
        }
        std::cout << "\n";
    }
Выводит в консоль:

Hel
loW
orl
d

И нужно его перезаписать в массив,
HlodeorlWl
Вот как его сделать ?
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
16.10.2019, 16:35
АнтонВарушин, проще всего было бы сформировать другой массив...
Но мне захотелось перетасовать исходный... Вы ж не против?
Обратите внимание, что предполагается, что матрица - вертикальная или квадратная!
Вот, что у меня получилось:
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
#include <iostream>
using namespace std;
 
#define STRLEN      10
#define ROWLEN      3
int main()
{
    char temp;
    char arr[STRLEN] = { 'H','e','l','l','o','W','o','r','l','d' };
 
    int i, j, k;
    int jmax = ROWLEN; //число столбцов
    int imax = (STRLEN + ROWLEN - 1) / ROWLEN; //число строк
    int max = (jmax > imax) ? imax : jmax; //меньшее из. Предполагаем, что столбцов меньше!
    int cnt; //счетчик сдвигов байт
 
    for (i = 0; i < max; i++) //сначала транспонируем квадратную часть
    {
        for (j = i; j < max; j++)
        {
            temp = arr[i*ROWLEN + j];
            arr[i*ROWLEN + j] = arr[j*ROWLEN + i];
            arr[j*ROWLEN + i] = temp;
        }
    }
//перепишем в нужное место оставшиеся элементы матрицы
    max *= max; //размер квадратной марицы
    if (imax > jmax) //матрица - не квадратная? Причем рассматриваем только вертикальную матрицу
    {
        for (i = max; i < STRLEN; i++) //по всем оставшимся элементам
        {
            temp = arr[i]; //сохраним в переменной
            k = i - max; //индекс адреса с 0
            cnt = (2 - (k % 3))*(ROWLEN + (k / ROWLEN)); //сколько раз надо сдвинуть элементы массива
            for (j = i, k = 0; k < cnt; k++)
                arr[j--] = arr[j - 1]; //сдвигаем, чтобы освободить место
            arr[j] = temp; //записываем на нужное место
        }
    }
 
    for (int i = 0; i < STRLEN; ++i)
        cout << arr[i];
    cout << endl;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.10.2019, 16:35
Помогаю со студенческими работами здесь

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

Работа с двухмерными массивами
Дана матрица вещественных чисел размером N на M. Вычислить произведение отрицательных элементов последнего столбца.

Intersect, Union с двухмерными массивами
Здравствуйте. Имею два двумерныє массивы. Хочу выполнить над ними различные сравнения (Intersect, Union ...). Пробовал: ...

Не работает setLength с двухмерными массивами
почему не работает setLength с двухмерным массивам хотя в справки описано : procedure SetLength(var a: System.Array; n1,n2,...: integer);...

Задания с одномерными, и двухмерными массивами
Задание 1.1 В одномерном массиве из 10 чисел вычислить средние арифметическое, у которого последняя цифра 1. Задание 1.2 В...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера 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, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru