Поместить в первый стек положительные элементы, а во второй — отрицательные - C (СИ)
Формулировка задачи:
Здравствуйте, помогите решить задачу.
Ввести с клавиатуры 12 чисел, поместив в первый стек положительные элементы, а во второй — отрицательные. Выведите стеки на экран.
Решение задачи: «Поместить в первый стек положительные элементы, а во второй — отрицательные»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> typedef struct _TNode { int value; struct _TNode* next; } TNode; //----------------------------------------------------------------------------- TNode* Push(TNode** stack, int value) { TNode* node = malloc(sizeof(TNode)); node->value = value; node->next = *stack; *stack = node; return *stack; } //----------------------------------------------------------------------------- void Print(const TNode* stack) { for (; stack; stack = stack->next) { printf("%d ", stack->value); } printf("\n"); } //----------------------------------------------------------------------------- int main() { TNode* a = NULL; TNode* b = NULL; unsigned i = 12; int value; while ((i--) && (scanf("%d", &value) == 1)) { if (0 < value) { Push(&b, value); } else { Push(&a, value); } } printf("a: "); Print(a); printf("b: "); Print(b); return 0; }
Объяснение кода листинга программы
- Создается структура данных TNode, которая представляет узел стека. Узел содержит целочисленное значение и указатель на следующий узел.
- Определяются две функции: Push для добавления элемента в стек и Print для вывода содержимого стека.
- В функции main создаются два указателя: a и b, которые будут указывать на вершину соответствующих стеков. Инициализируются они значением NULL.
- Переменная i инициализируется значением 12. Она будет использоваться для контроля количества вводимых чисел.
- В цикле while с условием i > 0 происходит считывание числа с помощью функции scanf и добавление его в один из стеков в зависимости от его знака.
- После окончания цикла, происходит вывод содержимого обоих стеков с помощью функции Print.
- Программа завершается возвратом значения 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д