1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
Может кнонибудь подсказать алгоритм вычисления выражения(из строки) записанного в постфиксной форме. Для выражений в инфиксной форме я знаю алгоритм а вот для постфиксной чето никак не соображу . Напишите просто на словах что запихиваем в стек что и когда вынимаем и тд...
int precedence(char symb) { switch(symb) { case ')':return -1; case '(':return 0; case '+':return 1; case '-':return 1; case '*':return 2; case '/':return 2; //default : return -1; } }
#include<stdio.h> #include<stdlib.h> #include<ctype.h> #include<string.h> #define Len 2056 #define NAME 5 #define COM 4 #define MCOM 8 char per[Len]="(a+b)*(c-d)/(e*(q-w))",*pe=per,*pe2=per,c;//ошибка была тут *pe2=pe char Stack[Len],*ST=Stack;
int i=0,k=0,m; int precedence(char symb) { switch(symb) { case ')':return -1; case '(':return 0; case '+':return 1; case '-':return 1; case '*':return 2; case '/':return 2; //default : return -1; } } int main() {
Добавлено через 9 мин. А вот если у меня выражение будет содержать не просто буквы a...Z или цифры 1..9 а имена переменных т.е (Ax1+num)*c-Chis.Как в таком случае реализовать перевод?Нужно будет сделать 2 стека 1для строк 2й для знаков +.-...? Как формировать элементы для помещения в стек строк(т.е как выдирать Ax1 эти переменные и когда их в стек пихать )?