0 / 0 / 0
Регистрация: 28.10.2016
Сообщений: 39
1

Заполнить матрицу зигзагом

11.12.2016, 22:15. Показов 4476. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
    const int colum = 10; // количество столбцов массива
    const int row   = 10; // количество строк массива
    int array[100][100];
 
    int x, y,  // Координаты текущего элемента массива
        value = 1; // значение, которым заполняется массив
 
    // зполнение первой половины массива по диагонали, зигзагом, начиная
    // слева и сверху, заканчивая  побочной диагональю
    for (int diag = 10; diag > 0; diag++) // выполняем проход по диагоналям
    {
        if (diag % 2 == 0) // по четным диагоналям
        {
            x = 0; // х-координата первого лемента массива на диагонали - diag
            y = diag; // у-координата элемента массива на диагонали - diag
 
            while (y >= 0) // пока y-координата находится в верхней части диагонали
            {
                array[x][y] = value; // записать значение в массив
                value++;
                x++;     // по горизонтали, смещаемся влево
                y--;    // по вертикали, смещаемся вниз
            }
        }
        else // по нечетным диагоналям
        {
            x = diag; // х-координата элемента массива на диагонали - diag
            y = 0; // у-координата первого элемента массива на диагонали - diag
 
            while (x >= 0) // пока x-координата находится в левой части диагонали
            {
                array[x][y] = value; // записать значение в массив
                value++;
                x -= 1;  // по горизонтали, смещаемся вправо
                y +=  1; // по вертикали, смещаемся вверх
            }
        }
    } // конец for
 
    // заполнение второй половины массива по диагонали, зигзагом, начиная
    // слева и сверху, заканчивая  последним элементом массива
    for (int diag = 1; diag < colum; diag++)
    {
        if (diag % 2 == 0) // по четным диагоналям
        {
            x = 9; // х-координата первого элемента массива на диагонали - diag
            y = diag;  // у-координата элемента массива на диагонали - diag
 
            while (y <= 9) // Пока не кончилась диагональ
            {
                array[x][y] = value;
                value++;
                x--; // по горизонтали, смещаемся влево
                y++; // по вертикали, смещаемся вниз
            }
        }
        else // по не четным диагоналям
        {
            x = diag; // х-координата первого элемента к-ой диагонали
            y = 9;  // у-координата первого элемента к-ой диагонали
 
            while (x <= 9) // Пока не кончилась диагональ
            {
                array[x][y] = value;
                value++;
                x++; // по горизонтали, смещаемся вправо
                y--; // по вертикали, смещаемся вверх
            }
        } // конец if-else
    } // конец цикла for (заполнение второй половины массива)
 
    // вывод масиива на экран
    for (int ix = 0; ix < row; ix++)
    {
        for (int jx = 0; jx < colum; jx++)
            cout << setw(4) << array[ix][jx] << " ";
        cout << endl;
    }
 
    return 0;
}
Надо сделать тож самое, только начинать с правого верхнего угла и как-то использовать указатели. Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2016, 22:15
Ответы с готовыми решениями:

Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке.

Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки
Заполнить матрицу случайными числами. Развернуть матрицу на 90o против часовой стрелки

Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали
Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали

Заполнить матрицу случайными числами. Разбить матрицу на квадраты размером 3х3. В центре каждого квадрата поме
Помогите пожалуйста есть некоторые мысли, ну успешного ответа нет :((( #include &lt;iostream&gt;...

0
11.12.2016, 22:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2016, 22:15
Помогаю со студенческими работами здесь

Заполнить массив зигзагом
Привет .Мне нужно заполнить массив . Например есть есть такой массив 1 2 3 4 1 2 3 4 1 2 3 4 ...

Массивы. Заполнить зигзагом и по спирали
Как заполнить зигзагом и по спирали по данным рисункам

Заполнить двумерный массив зигзагом
На пикче просто пример. Нужно заполнить массив N на M как на пикче. Находил подобные задания, но...

Заполнить двумерный массив зигзагом по диагонали
Нужно заполнить двумерный массив n-го порядка справа-налево сверху-вниз рандомными числами (от min...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru