ЛР4. Указатели, массивы, строки, массивы строк

Задание 1 (50)

Дано натуральное значение N. Создать квадратную целочисленную матрицу N*N, заполнить ее нулями и предложить пользователю меню управления матрицей:
  1. Вывести содержимое матрицы
  2. Обнулить матрицу
  3. Заполнить матрицу случайными значениями
  4. Изменить элемент матрицы по его координатам
  5. Повернуть матрицу на 90 градусов в указанном направлении
  6. Транспонировать матрицу
  7. Завершить работу с программой
Каждый элемент меню, кроме последнего, должен быть реализован в виде функции с передачей ему матрицы параметром вида int **m и размера матрицы N.

Задание 2 (30-50)

Общий вид функции main позволяет получить доступ к параметрам командной строки и переменным окружения:
int main(int argc, char **argv, char **env)
Разработать утилиту, которая будет выводить на экран содержимое переменных окружения (параметр env), имена которых переданы в командной строке (параметры argc и argv):
  1. При отсутствии параметров в командной строке утилита должна выводить правила своего использования.
  2. Поиск переменных окружения должен быть регистронезависимым.
  3. Каждая переменная выводится в двух строках: имя и значение. Затем - строка разделитель вида "---"
  4. При отсутствии в окружении искомой переменной, утилита должна выводить пустую строку вместо значения переменной
Список переменных окружения можно получить в терминале утилитой env.