Обратная польская запись - неверный ответ - C (СИ)
Формулировка задачи:
Помогите пожалуйста, я написал программу но у меня не выходит финальный ответ
Вот то что должно выходить -
Программа должна переводить значения из по́льску нота́цию (ПН) в обра́тно по́льскую нота́цию (ОПН) [infixovéj записи до postfixovéj записи]
Мне выдает эту ошибку(пожелание компелятора)
Помогите пожалуйста
Заранее спасибо!!!!
#include <stdio.h>
#define pocet 7000
int hodnota(char a){
if(a=='+' || a=='-')
return 0;
else if(a=='*' || a=='/')
return 1;
return -1;
}
char vyraz[10000];
char pole[pocet];
int main()
{
int i,x=0,j;
while(gets(vyraz)!=NULL){
x=-1;
for(i=0;i<10000;i++){
if(vyraz[i]>='A' && vyraz[i]<='Z')
printf("%c",vyraz[i]);
else if (vyraz[i]!='(' && vyraz[i]!=')'){
//pr=hodnota(vyraz[i]);
if(x==-1 || (pole[x]=='(')||(hodnota(pole[x])<hodnota(vyraz[i])))
pole[++x]=vyraz[i];
else if((hodnota(pole[x])>=hodnota(vyraz[i]))){
printf("%c",pole[x]);
pole[x]=vyraz[i];
}
}
else if (vyraz[i]=='('){
pole[x+=1]=vyraz[i];}
else
for(j=x;j>=0;j--){
if(pole[j]=='('){
x=j;
break;}
else
printf("%c",pole[j]);}
}
putchar('\n');
}
return 0;
}Решение задачи: «Обратная польская запись - неверный ответ»
textual
Листинг программы
while(scanf("%29s", inputstr) == 1) {
for( ... ) {
if( ... ) {
outstr[outp++] = inputstr[i];
} else if( ... ) {
if(sp) {
if( ... ) {
} else {
while( ... ) {
// ...