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

Двухмерный массив (заполнить змейкой квадратную матрицу) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с матрицей С++ Visual Studio http://www.cyberforum.ru/cpp-beginners/thread960484.html
Люди, помогите сделать задание с матрицей. Вобщем: Дана матрица натуральных чисел (Xij) порядка m*n. Упорядочить столбцы матрицы за неспаданием (это вообще непонятно, что имеется ввиду) максимальных элементов столбцов. Добавлено через 3 часа 41 минуту Обьясните хотя бы как сделать: Упорядочить столбцы матрицы за неспаданием)) Меня ведь завтра порвут... :(
C++ Работа с файлами Задача программы такова - пользователь вводит строку адреса , например C:\blablabla и программа считывает все размеры файлов хранящихся в этой и всех вложенных папках, определяет дату создания и права доступа к файлам. Подскажите в какои библиотеке есть функционал для этого? http://www.cyberforum.ru/cpp-beginners/thread960471.html
Найти наибольший общий делитель чисел C++
Найти наибольший общий делитель чисел M и N используя метод Эйлера: если M делится на N, то НОД (N, M) = N, иначе НОД (N, M) = НОД (M % N, N).Решить задачу двумя способами – с применением рекурсии и без нее. Помогите пожалуйста.
C++ задачка на объединения
с клавиатуры вводится комплексное число и натуральное число n. нужно вычислить корень n-ой степени из этого комплексного числа.
C++ Работа с файлом http://www.cyberforum.ru/cpp-beginners/thread960451.html
char *FileName ="123.txt"; int h=fileno(fopen(FileName,"r+")); FileName="\0"; Как мне теперь используя только h работать с файлом? Как записывать в файл и читать, и как закрыть, зная только h?
C++ Тех. задание дипломной работы Привет! В этом учебном году защищаю диплом, в связи с чем у меня возникли некоторые организационные вопросы. Планируется реализовать дипломку в C++. Необходимо автоматизировать работу с документацией, для сокращения макулатуры у преподавателей. Преподаватели хотят иметь возможность работать с документацией в любом месте, при любых обстоятельствах. Например: 1) Если есть доступ к... подробнее

Показать сообщение отдельно
ArtFeather
 Аватар для ArtFeather
13 / 13 / 9
Регистрация: 04.06.2015
Сообщений: 85
06.06.2015, 10:28     Двухмерный массив (заполнить змейкой квадратную матрицу)
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
#include <iostream>
#include <conio.h>
 
using namespace::std;
 
const int n = 4, m = 6;
int a[n][m];
 
void rows(int n, int m) { // Заполнение по горизонтали
        int k=0;
    for (int i = 0; i<n; i++)
    for (int j = 0; j<m; j++) {
        a[i][j] = (i % 2 ? (i + 1)*m - j - 1 : k);
        k++;
    }
}
 
void cols(int n, int m) { // Заполнение по вертикале
        int k=0;
    for (int j = 0; j<m; j++)
    for (int i = 0; i<n; i++) {
        a[i][j] = (j % 2 ? (j + 1)*n - i - 1 : k);
        k++;
    }
}
 
void output(int n, int m) { // Очистка
    for (int i = 0; i<n; i++) {
        cout << endl;
        for (int j = 0; j<m; j++) cout << a[i][j] << " ";
    }
}
 
int main()
{
 
    rows(n, m);
    output(n, m);
    cols(n, m);
    output(n, m);
    _getch();
    return 0;
 
 
}
Добавлено через 1 час 3 минуты
Вот по диагонали:

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
88
89
90
91
#include <iostream>
#include <conio.h>
 
using namespace::std;
 
const int n = 10, m = 10; // n - кол-во столбиков; m - кол-во строк 
int a[100][100];
 
 
void diagonal(int n, int m)
{
    int x, y,  // Координаты текущего элемента массива
        value = 1; // значение, которым заполняется массив
 
    for (int i = 0; i < n; i++) 
    {
        if (i % 2 == 0) // по четным диагоналям
        {
            x = 0; // х-координата первого лемента массива на диагонали
            y = i; // у-координата элемента массива на диагонали
 
            while (y >= 0) // пока y-координата находится в верхней части диагонали
            {
                a[x][y] = value;
                value++;
                x++;   
                y--;   
            }
        }
        else // по нечетным диагоналям
        {
            x = i; // х-координата элемента массива на диагонали
            y = 0; // у-координата первого элемента массива на диагонали
 
            while (x >= 0) // пока x-координата находится в левой части диагонали
            {
                a[x][y] = value; 
                value++;
                x -= 1; 
                y += 1; 
            }
        }
    } 
 
    for (int i = 1; i < n; i++)
    {
        if (i % 2 == 0) // по четным диагоналям
        {
            x = 9; // х-координата первого элемента массива на диагонали - diag
            y = i;  // у-координата элемента массива на диагонали - diag
 
            while (y <= 9) // Пока не кончилась диагональ
            {
                a[x][y] = value;
                value++;
                x--; // по горизонтали, смещаемся влево
                y++; // по вертикали, смещаемся вниз
            }
        }
        else // по не четным диагоналям
        {
            x = i; // х-координата первого элемента к-ой диагонали
            y = 9;  // у-координата первого элемента к-ой диагонали
 
            while (x <= 9) // Пока не кончилась диагональ
            {
                a[x][y] = value;
                value++;
                x++; // по горизонтали, смещаемся вправо
                y--; // по вертикали, смещаемся вверх
            }
        } // конец if-else
    } // конец цикла for (заполнение второй половины массива)
 
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
            cout << a[i][j] << " ";
        cout << endl;
    }
 
}
 
int main()
{
    diagonal(n, m);
    _getch();
    return 0;
 
 
}
 
Текущее время: 01:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru