Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 24.03.2013
Сообщений: 25
1

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

07.12.2013, 20:30. Просмотров 1778. Ответов 4
Метки нет (Все метки)

Почему не получается добавить элементы в стек?
Помогите пожалуйста.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#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;
}
 Комментарий модератора 
Для оформления кода используйте теги
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2013, 20:30
Ответы с готовыми решениями:

Создать стек вещественных чисел на основе статического массива
Создать стек вещественных чисел на основе статического массива. Реализовать методы : Добавить...

Создать стек целых чисел на основе статического массива
Создать стек целых чисел на основе статического массива. Реализовать методы : Добавить элемент,...

Создать стек целых чисел на основе статического массива.
Создать стек целых чисел на основе статического массива. Реализовать методы : Добавить элемент,...

Создать стек на основе статического массива и выполнить стандартные операции
Помогите, пожалуйста , разобраться почему не работают функции добавления , вывода, удаления. После...

4
1402 / 644 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
07.12.2013, 20:53 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#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;
}
Добавлено через 17 секунд
Цитата Сообщение от El2 Посмотреть сообщение
double top()
{
if (n != 0) // Проверим на пустоту.
printf("%d\n", st[n-1]); // Выведем вершину стека.
else
printf("стек пуст."); // Сообщение об ошибке.
}
%f, а не %d
1
1 / 1 / 0
Регистрация: 24.03.2013
Сообщений: 25
07.12.2013, 21:01  [ТС] 3
Dani, у меня проблема в том что когда я нажимаю 1 я не могу добавить элементы в стек
0
1402 / 644 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
07.12.2013, 21:04 4
El2, вот 4 добавляется. Хотите - сделайте ввод числа и добавьте его. Как ввод переменной act
0
1 / 1 / 0
Регистрация: 24.03.2013
Сообщений: 25
07.12.2013, 21:15  [ТС] 5
Dani благодарю за помощь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2013, 21:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создать стек записи Спортсмен на основе статического массива типа запись
Добрый вечер! Помогите пожалуйста решить задачку: Создать стек записи Спортсмен на основе...

Стек на основе статического массива
Здравствуйте! Помогите пожалуйста выполнить задание. Сама уже весь форум облазила и нужного не...

Стек целых строк на основе статического массива
Создать стек целых строк на основе статического массива. Реализовать методы : Добавить элемент,...

Стек записи на основе статического массива типа запись
Добрый вечер! Помогите пожалуйста выполнить задание: Создать стек записи Спортсмен на основе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.