#define _CRT_SECURE_NO_WARNINGS #include #include // 1. int triple(int x) { return x * 3; } int divide(int x) { return x / 3; } int* func(int (*f)(int), int* arr, int* size) { int* result = (int*)malloc(sizeof(int) * (*size)); for (int i = 0; i < *size; i++) { result[i] = f(arr[i]); } return result; } // 2. void printTriangleMatrix(int n) { for (int i = n; i >= 0; i--) { for (int j = i; j >= 0; j--) { printf("%d ", j); } printf("\n"); } } // 3. typedef struct Node { int data; struct Node* next; } Node; Node* createList(int n) { Node* head = NULL; Node* current = NULL; for (int i = 0; i < n; i++) { Node* newNode = (Node*)malloc(sizeof(Node)); newNode->data = i + 1; newNode->next = NULL; if (head == NULL) { head = newNode; current = newNode; } else { current->next = newNode; current = newNode; } } return head; } void printList(Node* head) { Node* current = head; while (current != NULL) { printf("%d ", current->data); current = current->next; } printf("\n"); } void deleteList(Node* head) { Node* current = head; while (current != NULL) { Node* next = current->next; free(current); current = next; } } void replaceElement(Node* head, int index, int value) { Node* current = head; int i = 0; if (index < 0) { // Проверка на отрицательное значение printf("Недопустимое значение: отрицательные значения недопустимы\n"); return; } while (current != NULL) { if (i == index) { current->data = value; return; } current = current->next; i++; } printf("Индекс вышел за границы\n"); } int main() { system("chcp 1251 > null"); printf("Задание1 - '1'\n" "Задание2 - '2'\n" "Задание3 - '3'\n"); int input = 0; // 1. int arr[] = { 1, 2, 3, 4, 5 }; int size = sizeof(arr) / sizeof(arr[0]); int* result1 = func(triple, arr, &size); int* result2 = func(divide, arr, &size); // 2. int n = 0; // 3. int listSize = 0; Node* head = createList(listSize); scanf_s("%d", &input); switch (input) { case 1: printf("Original array: "); for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } printf("\nTripled array: "); for (int i = 0; i < size; i++) { printf("%d ", result1[i]); } printf("\nDivided array: "); for (int i = 0; i < size; i++) { printf("%d ", result2[i]); } printf("\n"); free(result1); free(result2); break; case 2: // 2. Функция printTriangleMatrix printf("\nВведите число: "); scanf_s("%d", &n); printf("\nТреугольная матрица: \n"); printTriangleMatrix(n); break; case 3: // 3. Функции работы со списком printf("\nВведите число: "); scanf_s("%d", &listSize); printf("\nСоздание списка..."); printList(head); deleteList(head); printf("Удаление списка...\n"); head = createList(listSize); printf("Созданный список: "); printList(head); replaceElement(head, 2, 100); printf("Список после замены элемента:"); printList(head); deleteList(head); printf("Удаление списка...\n"); break; } return 0; }