Несоответствие типов переменных при создании символьного стека - C (СИ)

Узнай цену своей работы

Формулировка задачи:

как задать правильно символьный стек,чтобы компилятор не ругался на меня?
#include <stdio.h>
#include <stdlib.h>
 
char *p;   /* указатель на область свободной памяти */
char *tos; /* указатель на вершину стека */
char *bos; /* указатель на дно стека */
char stack[20];

/* Затолкать элемент в стек. */
int push(char i)
{
 
  if(tos >= 20) {
    printf("Стек переполнен\n");
    return tos;
  }
  stack[tos] = i;
  tos++;
}
 
/* Получить верхний элемент стека. */
char pop(void)
{
  tos--;
  if(tos < 0) {
    printf("Стек пуст\n");
    return 0;
  }
  return stack[tos];
}
int main(void) {
p = (char *) malloc(MAX*sizeof(char)); /* получить память для стека */
  if(!p) {
    printf("Ошибка при выделении памяти\n");
    exit(1);
  }
  tos = p;
  bos = p + MAX-1;
    return 0;
}

Решение задачи: «Несоответствие типов переменных при создании символьного стека»

textual
Листинг программы
% cc test.c
Pushed a
Pushed b
Pushed c
Pushed d
Pushed e
Pushed f
Pushed g
Pushed h
Pushed i
Pushed j
Стек переполнен
Poped j
Poped i
Poped h
Poped g
Poped f
Poped e
Poped d
Poped c
Poped b
Poped a
Стек пуст

Объяснение кода листинга программы

  1. Создание символьного стека.
  2. Ввод символов в стек.
  3. Переполнение стека.
  4. Извлечение символов из стека.
  5. Очистка стека.
  6. Проверка на пустой стек.
  7. Вывод сообщения об ошибке.
  8. Вывод сообщения о состоянии стека.
  9. Завершение работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы