#include #include #include #include #include // Намутим структуру данных, организованную в виде списка struct Node { struct Node * root; int a; struct Node * next; void replace_all(int to_change, int value, Node *root) { if (root != NULL) { if (root->a == to_change) { root->a = value; } replace_all(to_change, value, root->next); } } } typedef Node; int main() { setlocale(LC_ALL, "Russian"); srand(time(0)); // Заполняем список из 5 элементов случайными значениями Node *prev = NULL, *current; printf("Заполняем список из 5 элементов случайными значениями\n"); for (int i = 0; i < 5; i++) { current = new Node; current->a = rand() % 100; current->next = prev; prev = current; } current->root = current; printf("Полученный список: \n"); Node * traverse_iterator = current->root; while (traverse_iterator != NULL) { printf("Элемент: %i\n", traverse_iterator->a); traverse_iterator = traverse_iterator->next; } int to_change; printf("Введите элемент, который необходимо заменить: "); scanf_s("%i", &to_change); printf("Введите элемент, на который будем менять: "); int value; scanf_s("%i", &value); current->replace_all(to_change, value, current); printf("Полученный список: \n"); traverse_iterator = current->root; while (traverse_iterator != NULL) { printf("Элемент: %i\n", traverse_iterator->a); traverse_iterator = traverse_iterator->next; } _getch(); return 0; }