[C++] ONP
Ostatnio zmodyfikowano 2014-06-13 13:44
walus1305 Temat założony przez niniejszego użytkownika |
[C++] ONP » 2014-06-13 13:44:58 Chce napisać konwersję zwykłego wyrażenie na wyrażenie w ONP ale napotykam problem mianowicie gdy wpiszę 2 + 2 to program wypluję mi 2 2 + ale jak już wpisze np ( 2 + 3 ) * 2 - ( 2 / 1 ) to wypluwa coś takiego 2 3 + 2 * 2 1 / ( - ( i nie mam pojęcia co robię źle void konweruj_ONP( char * wyraz, int dlugosc ) { for( int i = 0; i < dlugosc; i++ ) { switch( wyraz[ i ] ) { case '(': stos[ index++ ] = wyraz[ i ]; break; case ')': while( stos[ index - 1 ] != '(' ) { pom[ ipom++ ] = stos[ --index ]; } break; case '+': case '-': while( index > 0 &&( stos[ index - 1 ] != '(' || stos[ index - 1 ] != '(' ) ) pom[ ipom++ ] = stos[ --index ]; stos[ index++ ] = wyraz[ i ]; break; case '*': case '/': stos[ index++ ] = wyraz[ i ]; break; default: pom[ ipom++ ] = wyraz[ i ]; break; } } while( index > 0 ) { index--; pom[ ipom++ ] = ' '; pom[ ipom++ ] = stos[ index ]; } for( int i = 0; i < ipom; i++ ) { cout << pom[ i ]; } }
|
|
« 1 » |