Porównanie wartości bezwzględnej dwóch liczb całkowitych
Ostatnio zmodyfikowano 2015-12-25 23:23
kakamxx Temat założony przez niniejszego użytkownika |
Porównanie wartości bezwzględnej dwóch liczb całkowitych » 2015-11-22 21:08:33 Cześć, pytanie domyślam się, że bardzo proste ale nie mogę sobie coś poradzić. Mianowicie mam zadanie: Napisz program, który wczytuje ze standardowego wejścia dwie liczby całkowite i wypisuje tą o większej wartości bezwzględnej. Proszę o pomoc czy moje rozumowanie jest ok - mam dać na wejście 2 liczby dajmy na to a i b, jeśli a < 0 to pomnożyć ją razy -1 i to samo z b, później zapisać te wartości do nowej zmiennej i te nowe zmienne porównać? Na próbę zrobiłem coś takiego: #include <iostream> using namespace std;
int main() { int a; int b; int a_bezwzgledna; int b_bezwzgledna; cin >> a; cin >> b; if( a < 0 ) a_bezwgledna =( a *( - 1 ) ); cout << a_bezwzgl ę dna; system( "PAUSE" ); return 0; }
ale dostaję error "identifier "a_bezwzgledna" is undefined", no to ok, komunikat rozumiem. Tylko w jaki sposób jeżeli podam liczbę ujemną zapisać jej wartość bezwzględną do zmiennej "a_bezwzgledna"? Prosiłbym o małą wskazówkę. |
|
michal11 |
» 2015-11-22 21:14:30 Skorzystaj z abs() albo sam napisz taką funkcję. Tak będzie najłatwiej i najładniej. |
|
kakamxx Temat założony przez niniejszego użytkownika |
» 2015-11-22 21:50:54 OK, co do napisania własnej funkcji to aktualny rozdział ze zbioru zadań który przerabiam to "instrukcje warunkowe i wyboru", a funkcje są dalej więc chyba (przynajmniej taką mam nadzieje) autor nie miał na myśli napisania swojej funkcji w tym zadaniu. Co do abs() to ok - aczkolwiek dalej mam problem... Mianowicie: #include <iostream> #include <cmath> using namespace std;
int main() { int a; int b; int a_bezwzgledna; int b_bezwzgledna; cin >> a; cin >> b; cout << a_bezwzgledna = abs( a ); system( "PAUSE" ); return 0; }
Błąd "no operator "=" matches these operands". Z czego on wynika? |
|
carlosmay |
» 2015-11-22 21:54:14 int main() { int a; int b; cin >> a; cin >> b; if( a < 0 ) a = - a; if( b < 0 ) b = - b; if( a > b ) cout << "a > b" << endl; else if( b > a ) cout << "b > a" << endl; else cout << "a = b" << endl; system( "PAUSE" ); return 0; }
edit: ale dostaję error "identifier "a_bezwzgledna" is undefined", |
literówka. |
|
kakamxx Temat założony przez niniejszego użytkownika |
» 2015-11-22 22:05:57 @carlosmay
Dziękuje za rozwiązanie, chyba przekombinowałem swoim sposobem... Literówka? Przecież tam nie ma literówki, chyba że oślepłem :p |
|
carlosmay |
» 2015-11-22 22:10:55 Pierwszy post: int a_bezwzgledna; if( a < 0 ) a_bezwgledna =( a *( - 1 ) ); cout << a_bezwzględna; // a_bezwzgledna // a_bezwgledna // a_bezwzględna |
|
kakamxx Temat założony przez niniejszego użytkownika |
» 2015-11-22 22:14:22 A, przepraszam - u siebie w kodzie to poprawiłem natomiast tutaj w poście już nie. Teraz pytałem o błąd "no operator "=" matches these operands" w kodzie: #include <iostream> #include <cmath> using namespace std;
int main() { int a; int b; int a_bezwzgledna; int b_bezwzgledna; cin >> a; cin >> b; cout << a_bezwzgledna = abs( a ); system( "PAUSE" ); return 0; }
Jakby na moją logikę to powinno być ok... Z jakiego powodu nie działa? |
|
carlosmay |
» 2015-11-22 22:18:31 cout << abs( a ) << endl;
b_bezwzgledna = abs( b ); cout << b_bezwzgledna << endl;
funkcja abs() |
|
« 1 » 2 |