Создать стек вещественных чисел на основе статического массива - 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;
}