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

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

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

Почему не получается добавить элементы в стек?

Помогите пожалуйста.

#include <stdio.h>
 
#define MAXN 100 // Максимальный размер стека.
 
static double st[MAXN]; // Массив стека.
int n; // Размер стека.
 
void push(double x)
{
    if (n != MAXN) // Проверим на переполнение.
        st[n++] = x; // Добавим новый.
    else
        printf("стек переполнен."); // Сообщение об ошибке.
}
 
double pop()
{
    if (n != 0) // Проверим на пустоту.
        n--; // Уменьшим размер.
    else
        printf("стек пуст."); // Сообщение об ошибке.
}
 
double top()
{
    if (n != 0) // Проверим на пустоту.
        printf("%d\n", st[n-1]); // Выведем вершину стека.
    else
        printf("стек пуст."); // Сообщение об ошибке.
}
 
int main()
{
int act = -1;
 
    while (act)
    {
        printf("\n1. добавление.\n2. удаление.\n3. вершина .\nиначе-выход.\n");
 
        scanf("%d", &act);
 
        switch (act)
        {
        case 1:
            double x();
            break;
        case 2:
            pop();
            break;
        case 3:
            top();
            break;
        default:
            break;
        }
    }
 
    return 0;
}

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

textual
Листинг программы
#include <stdio.h>
 
#define MAXN 100 // Максимальный размер стека.
 
static double st[MAXN]; // Массив стека.
int n; // Размер стека.
 
void push(double x)
{
    if (n != MAXN) // Проверим на переполнение.
        st[n++] = x; // Добавим новый.
    else
        printf("стек переполнен."); // Сообщение об ошибке.
}
 
void pop()
{
    if (n != 0) // Проверим на пустоту.
        n--; // Уменьшим размер.
    else
        printf("стек пуст."); // Сообщение об ошибке.
}
 
void top()
{
    if (n != 0) // Проверим на пустоту.
        printf("%f\n", st[n-1]); // Выведем вершину стека.
    else
        printf("стек пуст."); // Сообщение об ошибке.
}
 
int main()
{
    int act = -1;
 
    while (act)
    {
        printf("\n1. добавление.\n2. удаление.\n3. вершина .\nиначе-выход.\n");
        scanf("%d", &act);
 
        switch (act)
        {
        case 1:
            push(4);
            break;
        case 2:
            pop();
            break;      
        case 3:
            top();
            break;
        default:
            break;
        }
    }
 
    return 0;
}

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


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

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

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