#include #include #include #include typedef void (*task)(); int* createArr(int n) { if (n <= 0) return NULL; int* array = calloc(n, sizeof(int)); for (int i = 0; i < n; i++) { *(array + i) = i; } return array; } int** createTriangleArr(int n) { if (n <= 0) return NULL; int** array = calloc(n, sizeof(int*)); for (int i = 0; i < n; i++) { array[i] = calloc(i, sizeof(int)); } int num = 0; for (size_t i = 0; i < n; i++) { for (size_t j = 0; j < i; j++) { **array = num++; ++*array; } *array -= i; array++; } array -= n; return array; } void outputTriangle(int n, int** arr) { for (size_t i = 0; i < n; i++) { for (size_t j = 0; j < i; j++) { printf("%d ", **arr); ++*arr; } *arr -= i; ++arr; printf("\n"); } arr -= n; } void output(int n, int* arr) { for (size_t i = 0; i < n; i++) { printf("%d ", *arr + i); } } void deleteArr(int n, int* arr) { free(arr); } int squar(int a) { return a * a; } void task1() { printf("\nЗадание 1\n"); int a; printf("Введите значение а (int): "); scanf_s("%d", &a); int* b = &a; printf("Значение a уменьшено на 1 = %d", *b); scanf_s("%d", &a); printf("Новое значение a = %d", *b); } void task2() { printf("\nЗадание 2\n"); int n = 1000000; int* arr = createArr(n); printf("\nМассив удалён\n"); deleteArr(n, arr); } void task3() { printf("\nЗадание 3\n"); printf("Введите размер массива: "); int n; scanf_s("%d", &n); int* arr = createArr(n); output(n, arr); } void task4() { printf("\nЗадание 4\n"); printf("Введите размер массива: "); int n; scanf_s("%d", &n); int** arr = createTriangleArr(n); outputTriangle(n, arr); } void task5() { int k; printf_s("введите число: "); scanf_s("%d", &k); int(*f)(int); f = squar; printf("%d", f(k)); } int main() { setlocale(LC_ALL, "Russian"); printf("Введите число, соответствующее заданию: \n1 - Редактирование и вывод значения целочисленной при обращении к ней из консольного окна \n2 - Динамическое создание и удаление массива из одного миллиона элементов типа int\n3 - Функция для вывода на экран консоли массива произвольной длины (сам массив передается в качестве аргумента функции) \n4 - Треугольная матрица \n5 - указатель на функцию\n"); int num; scanf_s("%d", &num); if (num == 1) { task1(); main(); } else if (num == 2) { task2(); main(); } else if (num == 3) { task3(); main(); } else if (num == 4) { task4(); main(); } else if (num == 5) { task5(); main(); } else { printf("Нет такого задания. Выберите другое\n"); main(); } }