0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 173

Перевод из инфиксной в постфиксную

11.04.2016, 06:17. Показов 2146. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
#include <string.h> 
struct list{
    int data;
    struct list* next;
};
typedef struct stack { struct list *top; } Stack;
Stack* create()
{
    Stack*S;
    S = (Stack*)malloc(sizeof(Stack));
    S->top = NULL;
    return S;
}
int pop(Stack *S)
{
    int a;
    struct list *p;
    p = S->top;
    a = p->data;
    S->top = p->next;
    free(p);
    return a;
}
int top(Stack *S)
{
    if (S->top)
        return (S->top->data);
    else
        return 0;
}
int empty(Stack *S)
{
    return (S->top == NULL);
}
void push(int a, Stack *S)
{
    struct list *p;
    p = (struct list *) malloc(sizeof(struct list));
    p->data = a;
    p->next = S->top;
    S->top = p;
}
int main(){
    int i = 0, f, g, k = 0;
    struct list *p;
    Stack *q;
    char c,o;
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    q = create();
    while (scanf("%c", &c) == 1){
        if ((c >= '0') && (c <= '9'))
            printf("%c", c);
        else
            if (c == '(')
                push(c, q);
            else
                if (c == ')')
                {
                      while (top(q) != '(')
                            printf("%c", pop(q));
                      pop(q);
                }
                else
                {
                    push(c, q);
                    while (empty(q) == 0)
                    {
                        if ((top(q) == '*') || (top(q) == '/'))
                        {
                            printf("%c", pop(q));
                            pop(q);
                            push(c, q);
                        }
                        if (((top(q) == '+') || (top(q) == '-')) && ((c == '+') || (c == '-')))
                        {
                            printf("%c", pop(q));
                            pop(q);
                            push(c, q);
                        }
                    }
                }
    }
    return 0;
}
В общем, проблема со знаками вычисления. При их отсутствии все нормально проходит. Не могу разобраться, как нужно сделать с ними. В коде не то, чтобы ошибка наверное, он просто неправильно в месте со знаками вычисления написан)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.04.2016, 06:17
Ответы с готовыми решениями:

Перевод из инфиксной в постфиксную
ПОМОГИТЕ ПОЖАААЛУЙСТА!!! НУЖНА ПРОГРАММА ПЕРЕВОД ИЗ ИНФИКСНОЙ В ПОСТФИКСНУЮ ФОРМУ ( ГДЕ САМО ВЫРАЖЕНИЕ ВВОДИТСЯ С КЛАВИАТУРЫ ) ...

Перевод инфиксной формы в постфиксную
Пишу программу для перевода из инфиксной системы в постфиксную, при работе программы выдает ошибку EAccessviolation, и указывает на Stack....

Перевод из инфиксной записи в постфиксную
Всем привет! Ребята, помогите пожалуйста решить задачу. Нужно написать программу с использованием стека, которая переводит инфиксную запись...

2
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 173
17.04.2016, 06:40  [ТС]
Можно же тему апать?
0
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 173
21.04.2016, 08:56  [ТС]
Все еще надо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2016, 08:56
Помогаю со студенческими работами здесь

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

Перевод выражения из инфиксной в постфиксную форму
Перевести выражение из инфиксной в постфиксную форму. Вот мой код. Почему то на некоторых примерах при выводе ответа несколько раз пищит и...

Из инфиксной в постфиксную
Привет, опять я с этим заданием. Уже глаз болит, не могу понять в чем беда. Проблема при использовании скобок. А если вводить что-то типа...

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

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


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

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

Новые блоги и статьи
Реализация многопоточных сетевых серверов на Python
py-thonny 16.05.2025
Когда сталкиваешься с необходимостью писать высоконагруженные сетевые сервисы, выбор технологии имеет критическое значение. Python, со своей элегантностью и высоким уровнем абстракции, может. . .
C# и IoT: разработка Edge приложений с .NET и Azure IoT
UnmanagedCoder 16.05.2025
Мир меняется прямо на наших глазах, и интернет вещей (IoT) — один из главных катализаторов этих перемен. Если всего десять лет назад концепция "умных" устройств вызывала скептические улыбки, то. . .
Гибридные квантово-классические вычисления: Примеры оптимизации
EggHead 16.05.2025
Гибридные квантово-классические вычисления — это настоящий прорыв в подходах к решению сложнейших вычислительных задач. Представьте себе союз двух разных миров: классические компьютеры, с их. . .
Использование вебсокетов в приложениях Java с Netty
Javaican 16.05.2025
HTTP, краеугольный камень интернета, изначально был спроектирован для передачи гипертекста с минимальной интерактивностью. Его главный недостаток в контексте современных приложений — это. . .
Реализация операторов Kubernetes
Mr. Docker 16.05.2025
Концепция операторов Kubernetes зародилась в недрах компании CoreOS (позже купленной Red Hat), когда команда инженеров искала способ автоматизировать управление распределёнными базами данных в. . .
Отражение в C# и динамическое управление типами
stackOverflow 16.05.2025
Reflection API в . NET — это набор классов и интерфейсов в пространстве имён System. Reflection, который позволяет исследовать и манипулировать типами, методами, свойствами и другими элементами. . .
Настройка гиперпараметров с помощью Grid Search и Random Search в Python
AI_Generated 15.05.2025
В машинном обучении существует фундаментальное разделение между параметрами и гиперпараметрами моделей. Если параметры – это те величины, которые алгоритм "изучает" непосредственно из данных (веса. . .
Сериализация и десериализация данных на Python
py-thonny 15.05.2025
Сериализация — это своего рода "замораживание" объектов. Вы берёте живой, динамический объект из памяти и превращаете его в статичную строку или поток байтов. А десериализация выполняет обратный. . .
Чем асинхронная логика (схемотехника) лучше тактируемой, как я думаю, что помимо энергоэффективности - ещё и безопасность.
Hrethgir 14.05.2025
Помимо огромного плюса в энергоэффективности, асинхронная логика - тотальный контроль над каждым совершённым тактом, а значит - безусловная безопасность, где безконтрольно не совершится ни одного. . .
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru