Обратная польская запись - неверный ответ - 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( ... ) { // ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д