Задача:
Даны натуральные числа [latex]{i}, {j}[/latex], действительная матрица размера [latex]{18}\times{24}[/latex] [latex](1\leq i\leq j\leq 24)[/latex]. Поменять местами в матрице [latex]{i}[/latex]-й и [latex]{j}[/latex]-й столбцы.
Тест:
Вводим матрицу (размером [latex]{18}[/latex] — строк, [latex]{24}[/latex] — столбцов) в [latex]{input}[/latex], в следующей строке вписываем номера столбцов которые хотим поменять.
Пример:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
3 6
Программа:
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 |
#include <iostream> using namespace std; void input(double a[18][24]){ for(int i = 0; i < 18; i++){ for(int j = 0; j < 24; j++){ cin >> a[i][j]; } } } void output(double a[18][24]){ for(int i = 0; i < 18; i++){ for(int j = 0; j < 24; j++){ cout << a[i][j] <<((j == 23)? "\n": " "); } } } int main() { double a[18][24]; input(a); int i , j; cin >> i >> j; for(int k = 0; k < 18; k++){ swap(a[k][i-1], a[k][j-1]); } output(a); return 0; } |
- Ввод самого массива;
- Перевод строки после каждого 24 элемента;
- Ограничение по вводу до 18 строк;
- Замена местами обозначенных столбцов.
Ссылка на программу
P.S Хотел в тесте ввести матрицу красиво но [latex]{latex}[/latex] не воспринимал пробелы, пришлось бы вводить каждый элемент отдельно или же можно как то иначе.
Разбросанные по программе числа 18, 24 и 23 являются «магическими константами». Их использовать нельзя — нужно завести две переменные (желательно с описателем const) и инициализировать их значениями 18 и 24.
Для чего это делается? Когда в будущем нужно будет (возможно) изменить размеры матрицы, придётся разбираться заново во ВСЁМ Вашем коде. Вспоминать, что значит 23 и т.п. Если Вы завели именованные константы для размеров матрицы и написали понятные комментарии, то изменения будут локализованы одной строкой кода.