Задача
Задана матрица $n \times n$ — назовем ее $[1 \ldots n] \times [1 \ldots n]$ массивом. Для заданных $r$ и $c$ следует вывести $[1 \ldots r] \times [1 \ldots c]$ массив ($r$ строк и $c$ столбцов исходного массива).
Входные данные
Первая строка содержит число $n \space (1 \leq n \leq 100)$. Следующие строки содержат матрицу $n \times n$. Последняя строка содержит два числа $r$ и $c \space (1 \leq r, c \leq n)$. Все числа в матрице не превышают по модулю $100$.
Выходные данные
Выведите матрицу $r \times c$.
Тесты
Входные данные | Выходные данные |
4 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 3 2 |
1 2 5 6 9 1 |
5 18 25 34 44 -43 54 65 75 85 -32 95 15 25 35 -3 -4 15 -6 37 0 44 43 23 3 -12 4 3 |
18 25 34 54 65 75 95 15 25 -4 15 -6 |
6 30 -10 30 -69 -84 75 -3 -39 60 15 75 -74 36 68 35 23 25 -44 16 42 83 15 59 -18 71 43 35 -81 -38 51 37 -49 55 26 6 33 4 5 |
30 -10 30 -69 -84 -3 -39 60 15 75 36 68 35 23 25 16 42 83 15 59 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> using namespace std; int main() { unsigned short n, r, c; cin >> n; int ** x = new int * [n]; for (int i = 0; i < n; i++) x[i] = new int[n]; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) cin >> x[i][j]; cin >> r >> c; for (int i = 0; i < r; i++) { for (int j = 0; j < c; j++) cout << x[i][j] << " "; cout << endl; } return 0; } |
Решение
Для того, чтобы вывести матрицу на экран, нам нужно запустить $2$ цикла, один из которых будет вложен в предыдущий:
- первый цикл ($14$ строка кода) будет отвечать за количество выводимых строк матрицы — по условию, нужно вывести первые $r$ строк;
- второй цикл ($15$ строка кода) будет отвечать за количество выводимых столбцов матрицы — по условию, нужно вывести первые $c$ столбцов.
Ссылки
Условие задачи на e-olymp
Код решения на Ideone