Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- void print_stack(int stack[], int count) {
- if (count == 0) printf(" Стек пуст\n");
- else for (int i = 0;i < count;i++) printf("%i ", stack[i]);
- printf("\n");
- };
- void push(int stack[], int *count, int elem) {
- if (*count == 50) {
- printf("Стек полон. Добавление элемента невозможно.");
- }
- else {
- if (*count == 0) {
- stack[0] = elem;
- (*count)++;
- }
- else {
- stack[*count] = elem;
- (*count)++;
- }
- }
- }
- int pop(int stack[], int *count) {
- stack[(*count) - 1] += stack[(*count) - 2];
- int elem = stack[(*count) - 1];
- stack[(*count) - 1] = '\0';
- (*count)--;
- return elem;
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- int stack[50];
- int count = 0;
- int key = 0, elem = 0;
- while (key != 3) {
- printf("\nСодержимое стека: ");
- print_stack(stack, count);
- printf("1.Добавить элемент в стек.\n");
- printf("2.Извлечь элемент из стека. \n");
- printf("3.Выход из программы.\n");
- printf("Выберите операцию : ");
- while (scanf_s("%i", &key) != 1)
- {
- rewind(stdin);
- printf("Выберите операцию повторно: ");
- }
- if (key == 1) {
- printf("Введите значение элемента : ");
- scanf_s("%i", &elem);
- push(stack, &count, elem);
- }
- if (key == 2) {
- if (count <2) printf("\n Извлечение элемента невозможно.\n");
- else printf("\n Извлеченный элемент=%i\n", pop(stack, &count));
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement