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

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

11.04.2016, 06:17. Показов 1939. Ответов 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
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2016, 06:17
Ответы с готовыми решениями:

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

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

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

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

2
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 173
17.04.2016, 06:40  [ТС] 2
Можно же тему апать?
0
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 173
21.04.2016, 08:56  [ТС] 3
Все еще надо
0
21.04.2016, 08:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2016, 08:56
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru