[C++] Liczby ujemne
Ostatnio zmodyfikowano 2012-11-03 12:24
pawelex Temat założony przez niniejszego użytkownika |
[C++] Liczby ujemne » 2012-11-02 15:45:39 Siema, Mam zadanko http://main.edu.pl/pl/archive/ilocamp/2010/zna. I mam problem ponieważ nie wiem jak mam wypisywać liczby ujemne aby były one w nawiasach, np: (-5). Mój kod : #include <cstdlib> #include <cstdio> #include <stdio.h> #include <iostream> using namespace std; int main() { float a, b; long int x, y, z; cin >> a >> b; x = a + b; y = a - b; z = a * b; if( z == x || z == y || x == z || x == y || y == z || y == x ) { cout << "NIE"; } else { if( x > y && x > z ) { cout << a << "+" << b << "=" << x; } if( y > z && y > z ) { cout << a << "-" << b << "=" << y; } if( z > x && z > y ) { cout << a << "*" << b << "=" << z; } } return 0; }
|
|
m4tx |
» 2012-11-02 16:05:04 Hmm... Zrób sobie funkcję, np.: string formatuj( int n ) { if( n > 0 ) { return int2String( n ); } else { return "(" + int2String( n ) + ")"; } } (oczywiście musisz sobie dodatkowo napisać funkcję int2String) Można też za pomocą operatora trójkowego bezpośrednio w cout (aczkolwiek robi się burdel): cout <<( n < 0 ? "(": "" ) << n <<( n < 0 ? ")" : "" ); |
|
pawelex Temat założony przez niniejszego użytkownika |
» 2012-11-02 16:13:41 Coś mi nie wychodzi bo wypisuje sam wynik. (Korzystałem z tego drugiego kodu) |
|
m4tx |
» 2012-11-02 16:26:30 Jesteś pewien? Mi działa dobrze :) #include <iostream> using namespace std;
int main() { int n = - 214; cout <<( n < 0 ? "(": "" ) << n <<( n < 0 ? ")" : "" ); } m4tx@m4tx-EP35-DS4:~/Pulpit$ ./omg (-214) // Faila jeszcze zrobiłem. Zamień wszystkie NULL-e na "" w tym kodzie co dałem, bo dla liczb nieujemnych nie będzie działać :P Poprawiłem już w poście wyżej. |
|
pawelex Temat założony przez niniejszego użytkownika |
» 2012-11-03 11:28:44 A jak zrobić aby wyświetliło na wyjściu: 6-(-5)=11 |
|
m4tx |
» 2012-11-03 11:35:10 Tak jak napisałem wyżej? :) Z tym że czytelniej będzie z funkcją którą podałem. Można też jeszcze tak: void formatuj( int n ) { cout <<( n < 0 ? "(": "" ) << n <<( n < 0 ? ")" : "" ); } |
|
pawelex Temat założony przez niniejszego użytkownika |
» 2012-11-03 11:55:44 #include <cstdlib> #include <cstdio> #include <stdio.h> #include <iostream> using namespace std; int main() { float a, b; long int x, y, z; cin >> a >> b; x = a + b; y = a - b; z = a * b; if( z == x || z == y || x == z || x == y || y == z || y == x ) { cout << "NIE"; } else { if( x > y && x > z ) { cout <<( a < 0 ? "(": "" ) << a <<( a < 0 ? ")" : "" ) << "+" <<( b < 0 ? "(" : "" ) << b <<( b < 0 ? ")" : "" ) << "=" <<( x < 0 ? "(" : "" ) << x <<( x < 0 ? ")" : "" ); } if( y > z && y > z ) { cout <<( a < 0 ? "(": "" ) << a <<( a < 0 ? ")" : "" ) << "-" <<( b < 0 ? "(" : "" ) << b <<( b < 0 ? ")" : "" ) << "=" <<( y < 0 ? "(" : "" ) << y <<( y < 0 ? ")" : "" ); } if( z > x && z > y ) { cout <<( a < 0 ? "(": "" ) << a <<( a < 0 ? ")" : "" ) << "*" <<( b < 0 ? "(" : "" ) << b <<( b < 0 ? ")" : "" ) << "=" <<( z < 0 ? "(" : "" ) << z <<( z < 0 ? ")" : "" ); } } return 0; }
Mam 2 pytanie jeszcze:
1) Czy można skrócić ten kod w cout?
2) Po wpisaniu -6 i 5 wyświetla mi (-6)+5=(-1)(-6)-5=(-11) a powinno (-6)+5=(-1). Co jest nie tak?
PS Dzięki wielkie m4tx. |
|
m4tx |
» 2012-11-03 12:06:47 1) Czy można skrócić ten kod w cout? |
Tak, za pomocą funkcji, którą podałem. 2) Po wpisaniu -6 i 5 wyświetla mi (-6)+5=(-1)(-6)-5=(-11) a powinno (-6)+5=(-1). Co jest nie tak? |
if( x > y && x > z ) { } if( y > z && y > z ) { } if( z > x && z > y ) { } Te ify są bez sensu w ogóle :) Sprawdzaj znak działania, który wpisał użytkownik i powinno być ok. |
|
« 1 » 2 |