Форум программистов, компьютерный форум CyberForum.ru

Вывести на консоль значения элементов заданной матрицы змейкой по диагонали - C++

Восстановить пароль Регистрация
 
Max_Timokhin
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 13
17.11.2016, 14:18     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали #1
Написать программу, которая выполняет чтение значений элементов двумерного массива Arr[5,5] соответственно схеме:
Название: fdgdfg.jpg
Просмотров: 25

Размер: 16.3 Кб

Результаты чтения должны быть выведены на консоль. Значение элементов массива от 1 до 25.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2016, 14:18     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали
Посмотрите здесь:

C++ Вывести значения тех элементов матрицы, лежащих выше главной диагонали, которые больше всех элементов
C++ Заполнение матрицы змейкой по диагонали
заполнение матрицы по диагонали змейкой C++
Вывести главную диагональ заданной матрицы в консоль C++
Заменить значения всех элементов заданной строки матрицы числами заданной последовательности C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max_Timokhin
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 13
17.11.2016, 15:55  [ТС]     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали #2
То есть, чтоб на консоль сначала вывелась просто матрица 5 на 5:

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

А после на новой строке было : 25 20 24 23 19 15 10 14 18 22 21 17 13 9 5 4 8 12 16 11 7 3 2 6 1
Mathist
24 / 24 / 14
Регистрация: 18.04.2014
Сообщений: 65
Завершенные тесты: 1
17.11.2016, 18:19     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Max_Timokhin,
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
#include <iostream>
#include <cmath>
 
int main(int argc, char* argv[]) {
 
    const int N = 5;
    int a[N][N];
 
    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < N; ++j) {
            a[i][j] = i * N + j + 1;
            std::cout.width(3);
            std::cout << a[i][j];
        }
        std::cout << std::endl;
    }
 
    int i = N - 1;
    int k = 2 * i;
    bool isMoveUp = true;
 
    while (k >= 0) {
        for (i = (k - i) * (k - i >= 0); i < N && k - i >= 0; ++i ) {
            std::cout.width(3);
            if (isMoveUp) {
                std::cout << a[k - i][i];
            } else {
                std::cout << a[i][k - i];
            }
        }
        std::cout << std::endl;
        --i;
        isMoveUp = !isMoveUp;
        k--;
    }
    return 0;
}
Max_Timokhin
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 13
17.11.2016, 20:00  [ТС]     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали #4
Mathist, не работает
Ferrari F1
Заблокирован
295 / 281 / 61
Регистрация: 27.01.2015
Сообщений: 1,888
Записей в блоге: 1
Завершенные тесты: 1
17.11.2016, 20:24     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали #5
Max_Timokhin, если именно для массива 5 на 5, то не проще ли вручную вбить последовательно все индексы для выведения?
Т.е.
C++
1
cout << arr[4][4] << arr[3][4] << arr[4][3] << arr[4][2];
ну и так далее...
Mathist
24 / 24 / 14
Регистрация: 18.04.2014
Сообщений: 65
Завершенные тесты: 1
17.11.2016, 23:40     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Max_Timokhin, что именно не работает? может быть смущает вывод не в одну строку? просто уберите перевод строки после цикла:
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
#include <iostream>
#include <cmath>
 
int main(int argc, char* argv[]) {
 
    const int N = 5;
    int a[N][N];
 
    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < N; ++j) {
            a[i][j] = i * N + j + 1;
            std::cout.width(3);
            std::cout << a[i][j];
        }
        std::cout << std::endl;
    }
 
    std::cout << std::endl;
 
    int i = N - 1;
    int k = 2 * i;
    bool isMoveUp = true;
    while (k >= 0) {
        for (i = (k - i) * (k - i >= 0); i < N && k - i >= 0; ++i ) {
            std::cout.width(3);
            if (isMoveUp) {
                std::cout << a[k - i][i];
            } else {
                std::cout << a[i][k - i];
            }
        }
        --i;
        isMoveUp = !isMoveUp;
        k--;
    }
    return 0;
}
Вывод:
Код
  
  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

 25 20 24 23 19 15 10 14 18 22 21 17 13  9  5  4  8 12 16 11  7  3  2  6  1
Max_Timokhin
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 13
18.11.2016, 15:22  [ТС]     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали #7
Mathist, я скопировал ваш код, вставил, запускаю, показывается на мгновение консоль и сразу же закрывается. я уже пробовал добавлять system(“pause”) или _getch() в конце. Не помогает
У вас какая среда разработки? Я использую Visual Studio 2012
Annemesski
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 5
18.11.2016, 15:25     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали #8
я уже пробовал добавлять system(“pause”) и _getch() в конце.
system("pause") перед return 0 добавляли или после?
Mathist
24 / 24 / 14
Регистрация: 18.04.2014
Сообщений: 65
Завершенные тесты: 1
18.11.2016, 15:33     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали #9
Max_Timokhin, GCC 4.9.3. IDE Eclipse. Попробуйте добавить std::cin >> i;
Max_Timokhin
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 13
18.11.2016, 15:37  [ТС]     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали #10
Mathist, Все, получилось, работает.




Если не затруднит, помогите составить алгоритм (блок-схему)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2016, 16:17     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали
Еще ссылки по теме:

Вывести минимальный элемент главной диагонали заданной матрицы C++
Найти сумму элементов главной диагонали и разделить на нее значения всех элементов матрицы C++
C++ Вывести на консоль значения чётных элементов массива, сумму индексов нечётных элементов, и исходный массив

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

Или воспользуйтесь поиском по форуму:
Mathist
24 / 24 / 14
Регистрация: 18.04.2014
Сообщений: 65
Завершенные тесты: 1
18.11.2016, 16:17     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали #11
Max_Timokhin, Конечно, с чем у вас возникли сложности?
Внешний цикл по k, это счетчик диагоналей, начинаем с правого нижнего угла.
После каждого вывода диагонали меняем направление вывода.
Yandex
Объявления
18.11.2016, 16:17     Вывести на консоль значения элементов заданной матрицы змейкой по диагонали
Ответ Создать тему

Метки
c++, массив
Опции темы

Текущее время: 04:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru