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 |