Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Porównanie wartości bezwzględnej dwóch liczb całkowitych

Ostatnio zmodyfikowano 2015-12-25 23:23
Autor Wiadomość
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:

C/C++
#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ę.
P-140613
michal11
» 2015-11-22 21:14:30
Skorzystaj z abs() albo sam napisz taką funkcję. Tak będzie najłatwiej i najładniej.
P-140614
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:

C/C++
#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?
P-140619
carlosmay
» 2015-11-22 21:54:14
C/C++
int main()
{
    int a;
    int b;
    cin >> a;
    cin >> b;
   
    if( a < 0 ) // jesli a ujemne zmien znak
         a = - a;
   
    if( b < 0 ) // jesli b ujemne zmien znak
         b = - b;
    // wypisz wynik
    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.
P-140621
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
P-140624
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
   
P-140626
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:

C/C++
#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?
P-140627
carlosmay
» 2015-11-22 22:18:31
C/C++
cout << abs( a ) << endl; // albo tak

b_bezwzgledna = abs( b ); // albo tak
cout << b_bezwzgledna << endl;

funkcja abs()
P-140628
« 1 » 2
  Strona 1 z 2 Następna strona