Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Max_Timokhin
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 38
#1

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

17.11.2016, 14:18. Просмотров 313. Ответов 10

Написать программу, которая выполняет чтение значений элементов двумерного массива Arr[5,5] соответственно схеме:
Название: fdgdfg.jpg
Просмотров: 29

Размер: 16.3 Кб

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

Вывести значения тех элементов матрицы, лежащих выше главной диагонали, которые больше всех элементов - C++
Дан вещественный массив А. Вывести на экран значения тех элементов, лежащих выше главной диагонали, которые больше всех элементов, лежащих...

Вывести главную диагональ заданной матрицы в консоль - C++
Дан массив, нужно вывести главную диагональ в консоль #include <iostream> #include <iomanip> #include <math.h> #include <stdlib.h> ...

Заменить значения всех элементов заданной строки матрицы числами заданной последовательности - C++
Дан двумерный массив (MxN). Составить программу, которая заменяет значения всех элементов некоторой строки массива числами заданной...

Заполнение матрицы змейкой по диагонали - C++
Дано натуральное N (1<=N<=10). Заполнить матрицу порядка NxN целыми числами 0, 1, 2, 3, …, NxN – 1 по диагонали(из правого верхнего угла...

Заполнение матрицы по диагонали змейкой - C++
будьте добры ,помогите написать програму: заполнение матрицы введенными с клавиатуры числами по диагонали змейкой по принципу 1 3 4 ...

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

10
Max_Timokhin
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 38
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
0
Mathist
42 / 42 / 20
Регистрация: 18.04.2014
Сообщений: 97
Завершенные тесты: 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;
}
1
Max_Timokhin
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 38
17.11.2016, 20:00  [ТС] #4
Mathist, не работает
0
Ferrari F1
580 / 518 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 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];
ну и так далее...
0
Mathist
42 / 42 / 20
Регистрация: 18.04.2014
Сообщений: 97
Завершенные тесты: 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
1
Max_Timokhin
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 38
18.11.2016, 15:22  [ТС] #7
Mathist, я скопировал ваш код, вставил, запускаю, показывается на мгновение консоль и сразу же закрывается. я уже пробовал добавлять system(“pause”) или _getch() в конце. Не помогает
У вас какая среда разработки? Я использую Visual Studio 2012
0
Annemesski
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 11
18.11.2016, 15:25 #8
я уже пробовал добавлять system(“pause”) и _getch() в конце.
system("pause") перед return 0 добавляли или после?
0
Mathist
42 / 42 / 20
Регистрация: 18.04.2014
Сообщений: 97
Завершенные тесты: 1
18.11.2016, 15:33 #9
Max_Timokhin, GCC 4.9.3. IDE Eclipse. Попробуйте добавить std::cin >> i;
1
Max_Timokhin
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 38
18.11.2016, 15:37  [ТС] #10
Mathist, Все, получилось, работает.




Если не затруднит, помогите составить алгоритм (блок-схему)
0
Mathist
42 / 42 / 20
Регистрация: 18.04.2014
Сообщений: 97
Завершенные тесты: 1
18.11.2016, 16:17 #11
Max_Timokhin, Конечно, с чем у вас возникли сложности?
Внешний цикл по k, это счетчик диагоналей, начинаем с правого нижнего угла.
После каждого вывода диагонали меняем направление вывода.
1
18.11.2016, 16:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2016, 16:17
Привет! Вот еще темы с ответами:

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

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

Вывести на консоль среднее арифметическое элементов, расположенных под побочной диагональю матрицы - C++
Вывести на консоль среднее арифметическое элементов, расположенных под побочной диагональю матрицы. Помогите написать программу.

Заменить на 0 значения элементов матрицы, лежащих выше главной диагонали - C++
Ребят помогите!!! сижу на экзамене Необходимо создать приложение в визуальной среде, которое запрашивает размерность квадратного...


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

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

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