[C++] ONP -> NP
Ostatnio zmodyfikowano 2012-11-07 15:54
notsopro Temat założony przez niniejszego użytkownika |
[C++] ONP -> NP » 2012-11-07 15:46:03 Witam, mam program który liczy ONP (zrobiony wzorując się na poradniku w internecie) i zastanawiałem się jak przerobić go żeby liczył również NP ... działa na zasadzie że jeżeli jest liczba to wpisuje na stos , jeżeli znak to pobiera 2 ostatnio wpisane liczby i liczy .... teraz zastanawiałem się jak zrobić czy np. -jeżeli znak to wpisuje na stos i jeżeli są 2 liczby obok siebie to liczy ... tylko dla bardziej skomplikowanych przykładów by to nie działało -jeżeli liczba to wpisuje do jednego stosu jeżeli znak to do innego i jeżeli w stosie liczb są już 2 elementu to biore ostatni znak ze stosu znaków i licze - tutaj jest problem ponieważ nie wiem jak to zrobić ;/ kod ONP : #include <iostream> #include <math.h>
using namespace std;
int main( int argc, char * argv[] ) { int stos[ 256 ]; int wsk = 0; int a, b, w; char el[ 256 ]; int t; cin >> t; while( t-- ) { do { cin >> el; if( el[ 0 ] >= '0' && el[ 0 ] <= '9' ) { a = b = 0; do a = 10 * a + el[ b++ ] - 48; while( el[ b ] ); stos[ wsk++ ] = a; } else if( el[ 0 ] == '=' ) cout << stos[ --wsk ] << endl; else { b = stos[ --wsk ]; a = stos[ --wsk ]; switch( el[ 0 ] ) { case '+': w = a + b; break; case '-': w = a - b; break; case '*': w = a * b; break; case '/': w = a / b; break; case '^': w = 1; while( b-- ) w *= a; break; } stos[ wsk++ ] = w; } } while( el[ 0 ] != '=' ); } system( "PAUSE" ); return EXIT_SUCCESS; }
|
|
DejaVu |
» 2012-11-07 15:49:36 |
|
notsopro Temat założony przez niniejszego użytkownika |
» 2012-11-07 15:54:43 upss lekki trol ... niezauważyłem sorka |
|
« 1 » |