38 / 27 / 13
Регистрация: 18.12.2019
Сообщений: 423
Записей в блоге: 1
1

Функции для обработки двумерного массива

14.03.2020, 18:01. Показов 1546. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <windows.h>
#include <ctime>
using namespace std;
void FillArray (int arr[][100]);
{
    const int sizeROW = 100, sizeCOL = 100;
    int arr[sizeROW][sizeCOL];
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            cout << arr[i][j] << '\t';
        }
    }
}
 
int main()
{
}
Подскажите что я не так делаю и как это исправить ?
Миниатюры
Функции для обработки двумерного массива  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2020, 18:01
Ответы с готовыми решениями:

Написать программу для обработки двумерного массива.
Сформировать и вывести на экран заданный двумерный массив (для заполнения массива использовать...

Функции двумерного массива. Транспонировать матрицу через ввод вывод функции двумерного массива.
Транспонировать матрицу через ввод вывод функции двумерного массива.Сначала вывести ее,а потом...

Функции-шаблоны для обработки массива
Разработать шаблон ввода и вывода массива, а так же шаблон для решение задачи : Все элементы...

Создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка С, но не применять их в своей функции
Доброго времени суток! Крайне необходима помощь экспертов в С++! Кто может - не оставьте меня в...

5
22 / 13 / 9
Регистрация: 16.10.2019
Сообщений: 64
14.03.2020, 18:09 2
Точку с запятой на 5-ой строке уберите
1
Модератор
Эксперт С++
13492 / 10748 / 6405
Регистрация: 18.12.2011
Сообщений: 28,681
14.03.2020, 19:28 3
Лучший ответ Сообщение было отмечено atorvik как решение

Решение

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
#include <iostream>
#include <windows.h>
#include <ctime>
using namespace std;
const int sizeROW = 100, sizeCOL = 100;
void PrintArray(int arr[][sizeCOL],int row,int col)
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            cout << arr[i][j] << '\t';
        }
        cout << endl;
    }
}
void FillArray(int arr[][sizeCOL], int row, int col)
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            arr[i][j] = rand()%100;
        }
    }
}
int main()
{
    int a[sizeROW][sizeCOL];
    int n = 10, m = 5;
    FillArray(a,n,m);
    PrintArray(a, n, m);
}
А лучше воспользуйтесь стандартным образцом, который Вы должны были уже посмотреть, когда знакомились с разделом "ВАЖНЫЕ ТЕМЫ"
Образцы (шаблоны) программ для типовых задач
1
38 / 27 / 13
Регистрация: 18.12.2019
Сообщений: 423
Записей в блоге: 1
22.03.2020, 16:14  [ТС] 4
Собственно вот что пока получилось.
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
#include <iostream>
#include <windows.h>
#include <ctime>
using namespace std;
const int sizeROW = 100, sizeCOL = 100;
void PrintArray(int arr[][sizeCOL], int row, int col)
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            cout << arr[i][j] << '\t';
        }
        cout << endl;
    }
}
void FillArray(int arr[][sizeCOL], int row, int col)
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            arr[i][j] = rand() % 100;
        }
    }
}
int main()
{
    SetConsoleOutputCP(1251);
    srand(time(0));
    int a[sizeROW][sizeCOL];
    int n = 2, m = 6;
    cout << "Исходный массив: " << endl;
    FillArray(a, n, m);
    PrintArray(a, n, m);
    cout << "Введите количество сдвигов: ";
    int number_of_shifts;
    cin >> number_of_shifts;
    cout << endl;
 
    cout << "Ввыберите положение (1-влево, 2-вправо, 3-вверх, 4-вниз): ";
    int position;
    cin >> position;
    switch (position) {
    case 1:
    {
 
        PrintArray(a, n, m);
    }
    break;
    case 2:
    {
 
        PrintArray(a, n, m);
    }
    break;
    case 3:
    {
 
        PrintArray(a, n, m);
    }
    break;
    case 4:
    {
 
        PrintArray(a, n, m);
    }
    break;
    default: cout << "Позиций всего 4!";
    }
}
Осталось дописать циклические сдвиги во всевозможные стороны(для этого двумерного массива). Подскажите где их взять. Написать самому мозгов не хватает.
Спасибо.
0
38 / 27 / 13
Регистрация: 18.12.2019
Сообщений: 423
Записей в блоге: 1
25.03.2020, 18:36  [ТС] 5
Итоговый вариант. Сдвиги во все стороны. Меню.
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <windows.h>
#include <ctime>
using namespace std;
const int sizeROW = 100, sizeCOL = 100;
void PrintArray(int arr[][sizeCOL], int row, int col)
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            cout << arr[i][j] << '\t';
        }
        cout << endl;
    }
}
void FillArray(int arr[][sizeCOL], int row, int col)
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            arr[i][j] = rand() % 100;
        }
    }
}
void RightShift(int number_of_shifts, int arr[][sizeCOL], int row, int col)
{
    double temp;
    for (int p = 1; p <= number_of_shifts; p++)
    {
        for (int i = 0; i < row; i++)
        {
            temp = arr[i][col - 1];
            for (int j = col - 1; j > 0; j--)
                arr[i][j] = arr[i][j - 1];
            arr[i][0] = temp;
        }
    }
}
void LeftShift(int number_of_shifts, int arr[][sizeCOL], int row, int col)
{
    double temp;
    for (int i = 1; i <= number_of_shifts; i++)
    {
        for (int i = 0; i < row; i++)
        {
            temp = arr[i][col - col];
            for (int k = col - col; k < col; k++)
                arr[i][k] = arr[i][k + 1];
            arr[i][col - 1] = temp;
        }
    }
}
void DownShift(int number_of_shifts, int arr[][sizeCOL], int row, int col)
{
    double temp;
    for (int p = 1; p <= number_of_shifts; p++)
    {
        for (int j = 0; j < col; j++)
        {
            temp = arr[row - 1][j];
            for (int i = row - 1; i > 0; i--)
                arr[i][j] = arr[i - 1][j];
            arr[0][j] = temp;
        }
    }
}
void UpShift(int number_of_shifts, int arr[][sizeCOL], int row, int col)
{
    double temp;
    for (int p = 1; p <= number_of_shifts; p++)
    {
        for (int j = 0; j < col; j++)
        {
            temp = arr[row - row][j];
            for (int i = 0; i < row; i++)
                arr[i][j] = arr[i + 1][j];
            arr[row - 1][j] = temp;
        }
    }
}
int main()
{
    SetConsoleOutputCP(1251);
    srand(time(0));
    int a[sizeROW][sizeCOL];
    int n = 4, m = 6;
    cout << "Исходный массив: " << endl;
    FillArray(a, n, m);
    PrintArray(a, n, m);
    cout << "Введите количество элементов на сдвиг: ";
    int number_of_shifts;
    cin >> number_of_shifts;
    cout << endl;
    cout << "Ввыберите положение (1-влево, 2-вправо, 3-вверх, 4-вниз): ";
    int position;
    cin >> position;
    switch (position)
    {
    case 1:
    {
        LeftShift(number_of_shifts, a, n, m);
        PrintArray(a, n, m);
    }
    break;
    case 2:
    {
        RightShift(number_of_shifts, a, n, m);
        PrintArray(a, n, m);
    }
    break;
    case 3:
    {
        UpShift(number_of_shifts, a, n, m);
        PrintArray(a, n, m);
    }
    break;
    case 4:
    {
        DownShift(number_of_shifts, a, n, m);
        PrintArray(a, n, m);
    }
    break;
    default: cout << "Позиций всего 4!";
    }
}
0
38 / 27 / 13
Регистрация: 18.12.2019
Сообщений: 423
Записей в блоге: 1
25.03.2020, 18:36  [ТС] 6
Итоговый вариант. Сдвиги во все стороны. Меню.
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <windows.h>
#include <ctime>
using namespace std;
const int sizeROW = 100, sizeCOL = 100;
void PrintArray(int arr[][sizeCOL], int row, int col)
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            cout << arr[i][j] << '\t';
        }
        cout << endl;
    }
}
void FillArray(int arr[][sizeCOL], int row, int col)
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            arr[i][j] = rand() % 100;
        }
    }
}
void RightShift(int number_of_shifts, int arr[][sizeCOL], int row, int col)
{
    double temp;
    for (int p = 1; p <= number_of_shifts; p++)
    {
        for (int i = 0; i < row; i++)
        {
            temp = arr[i][col - 1];
            for (int j = col - 1; j > 0; j--)
                arr[i][j] = arr[i][j - 1];
            arr[i][0] = temp;
        }
    }
}
void LeftShift(int number_of_shifts, int arr[][sizeCOL], int row, int col)
{
    double temp;
    for (int i = 1; i <= number_of_shifts; i++)
    {
        for (int i = 0; i < row; i++)
        {
            temp = arr[i][col - col];
            for (int k = col - col; k < col; k++)
                arr[i][k] = arr[i][k + 1];
            arr[i][col - 1] = temp;
        }
    }
}
void DownShift(int number_of_shifts, int arr[][sizeCOL], int row, int col)
{
    double temp;
    for (int p = 1; p <= number_of_shifts; p++)
    {
        for (int j = 0; j < col; j++)
        {
            temp = arr[row - 1][j];
            for (int i = row - 1; i > 0; i--)
                arr[i][j] = arr[i - 1][j];
            arr[0][j] = temp;
        }
    }
}
void UpShift(int number_of_shifts, int arr[][sizeCOL], int row, int col)
{
    double temp;
    for (int p = 1; p <= number_of_shifts; p++)
    {
        for (int j = 0; j < col; j++)
        {
            temp = arr[row - row][j];
            for (int i = 0; i < row; i++)
                arr[i][j] = arr[i + 1][j];
            arr[row - 1][j] = temp;
        }
    }
}
int main()
{
    SetConsoleOutputCP(1251);
    srand(time(0));
    int a[sizeROW][sizeCOL];
    int n = 4, m = 6;
    cout << "Исходный массив: " << endl;
    FillArray(a, n, m);
    PrintArray(a, n, m);
    cout << "Введите количество элементов на сдвиг: ";
    int number_of_shifts;
    cin >> number_of_shifts;
    cout << endl;
    cout << "Ввыберите положение (1-влево, 2-вправо, 3-вверх, 4-вниз): ";
    int position;
    cin >> position;
    switch (position)
    {
    case 1:
    {
        LeftShift(number_of_shifts, a, n, m);
        PrintArray(a, n, m);
    }
    break;
    case 2:
    {
        RightShift(number_of_shifts, a, n, m);
        PrintArray(a, n, m);
    }
    break;
    case 3:
    {
        UpShift(number_of_shifts, a, n, m);
        PrintArray(a, n, m);
    }
    break;
    case 4:
    {
        DownShift(number_of_shifts, a, n, m);
        PrintArray(a, n, m);
    }
    break;
    default: cout << "Позиций всего 4!";
    }
}
0
25.03.2020, 18:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2020, 18:36
Помогаю со студенческими работами здесь

Разработать алгоритм обработки двумерного массива
Разработать алгоритм обработки двумерного массива размера n*m. Числа m и n, а также элементы...

Выделение памяти для динамического двумерного массива внутри функции
Имеется вот такой код : #include &lt;iostream&gt; void allocateMemory(int ***array, int size); void...

Фрагмент кода обработки двумерного массива переделать под одномерный массив
Здравствуйте форумчане хочу разобраться как написать такую же прог-му только для одномерной матрицы...

Как правильно записать в виде функции выделение памяти для двумерного массива и ее освобождение
Здравствуйте! Подскажите, как правильно записать в виде функции выделение памяти для двумерного...


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

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

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