Написать функцию, которая удаляет из стека отрицательные элементы. остальной код: struct stack { // декларация структурного типа int info; stack * next; } *begin, *t; // декларации прототипов функций пользователя stack* instack(stack*, int); void view(stack*); void del_all(stack **); // функция добавления элемента в стек stack* instack(stack *p, int in) { stack *t = new stack; t-> info = in; t-> next = p; return t; } // функция просмотра стека void view(stack *p) { stack *t = p; while (t ! = null) { cout < < " " < < t-> info < < endl; t = t-> next; } } // функция освобождения памяти void del_all(stack **p) { while (*p ! = null) { t = *p; *p = (*p)-> next; delete t; } } void main() { int i, in, n, kod; while (true) { cout < < "\n\tcreat - 1.\n\tadd - 2.\n\tview - 3.\n\tdel - 4.\n\texit – 0. : "; 19 cin > > kod; switch (kod) { case 1: case 2: if (kod == 1 & & begin ! = null) { // если создаем новый стек, должны освободить память, занятую предыдущим cout < < "clear memory! " < < endl; break; } cout < < "input kol = "; cin > > n; for (i = 1; i < = n; i++) { in = random(20); begin = instack(begin, in); } if (kod == 1) cout < < "create " < < n < < endl; else cout < < "add " < < n < < endl; break; case 3: if (! begin) { cout < < "stack pyst! " < < endl; break; } cout < < "--- stack ---" < < endl; view(begin); break; case 4: del_all(& begin); cout < < "memory free! " < < endl; break; case 0: if (begin ! = null) del_all(& begin); return; // выход – exit } } }