int main(int argc, char **argv, char **env)Разработать утилиту, которая будет выводить на экран содержимое переменных окружения (параметр env), имена которых переданы в командной строке (параметры argc и argv):
matrix [опция]
В отсутствие опции утилита принимает матрицу со стандартного ввода и отправляет на стандартный вывод. Форма ввода матрицы - набор целых чисел через пробел. Матрица квадратная, поэтому количество строк ввода определяется количеством чисел в первой строке, лишние строки игнорируются, обработка ошибок ввода не предусматривается. Форма вывода матрицы - набор целых чисел через пробел. Количество строк вывода определяется количеством чисел в первой строке.
Список опций:
-c N - создает матрицу NxN, заполняет нулями и выводит на стандартный поток вывода.
-r A B - принимает матрицу со стандартного вывода, заменяет все элементы случайными значениями
в диапазоне [A,B] и выводит полученную матрицу на стандартный вывод.
-e X Y Z - принимает матрицу со стандартного вывода, заменяет элемент по координатам (X,Y)
значением Z и выводит полученную матрицу на стандартный вывод.
-R - принимает матрицу со стандартного вывода, поворачивает ее на 90 градусов по часовой стрелке
и выводит полученную матрицу на стандартный вывод.
-L - принимает матрицу со стандартного вывода, поворачивает ее на 90 градусов против часовой стрелки
и выводит полученную матрицу на стандартный вывод.
Каждая опция, должна быть реализована в виде функции с передачей матрицы параметром вида int **m,
размера матрицы и необходимых дополнительных параметров. Ввод и вывод матрицы должны быть реализованы
отдельными функциями.
Например:
| Команда | Ввод | Вывод |
|---|---|---|
| ./matrix -e 0 1 333 |
1 2 3 11 12 13 111 112 113 1111 1112 1113 |
1 2 3 333 12 13 111 112 113 |
| Ввод | Вывод |
|---|---|
|
1 2 3 4 3 1 4 3 |
./matrix -R | ./matrix -e 1 1 3 |