C++ . Valoarea absoluta a unui numar .
Last Updated: Apr 18 2022 18:06, Started by
Arrowwq
, Apr 18 2022 14:20
·
0
#1
Posted 18 April 2022 - 14:20
Salutare! ?Ma ajuta cineva cu problema asta ?
Se citesc de la tastatură 3 numere întregi. Programul va afișa pe ecran numerele ordonate crescător in funcție de modulul lor Date de intrare Date de ieșire - 9 1 6 1 6 -9 |
#3
Posted 18 April 2022 - 15:01
Ex: Declar 3 variabile .
int a, b, c, aux; cin >> a >> b >> c; if (a > b ) { aux = a; a = b; b = aux; } if (a > c) { aux = a; a = c; c = aux; } if ( b > c ) { aux = b; b = c; c = aux; } cout << a << " " << b << " " << c;Dar nu inteleg cum pot proceda daca am un numar mai mic decat 0 sa il afiseze in functie de modului lui ! Citire { - 5 3 8 } >< afisare => { 3 , - 5 , 8 }
Edited by MarianG, 18 April 2022 - 17:38.
|
#4
Posted 18 April 2022 - 15:28
nu inteleg problema. Adica nu o explici pe intelesul meu.
de ce afisare nu ar trebui sa fie -5, 3, 8 sau daca vb de numere absolute atunci cand citesti numerele trebuie sa le "Abs(a)". pentru a compara 3 cu 5 cu 8. Edited by roPopa, 18 April 2022 - 15:30. |
#5
Posted 18 April 2022 - 15:59
Pai tu nu le compari nicaieri valoare absoluta, tu doar le compari intre ele.
|
#7
Posted 18 April 2022 - 16:18
Salutare! Multumesc tuturor pentru raspuns ! Dani.user am primit hintul de la tine si am rezolvato .
#include <iostream> using namespace std; int main () { int a, b, c, aux; cin >> a >> b >> c; if (abs(a) > abs(b) ) { aux = a; a = b; b = aux; } if (abs(a) > abs(c) ) { aux = a; a = c; c = aux; } if ( abs(b) > abs© ) { aux = b; b = c; c = aux; } cout << a << " " << b << " " << c; return 0; } Edited by MarianG, 18 April 2022 - 16:31. |
#8
Posted 18 April 2022 - 16:37
Ăsta numai program de începători nu e. Dacă citești numerele unul câte unul le poți introduce într-o listă gata ordonată în funcție de valoarea absolută a numărului (funcția ”abs()”). Dacă citești toate numerele pe o singură linie atunci atunci obții un string care trebuie separat în elemente individuale (funcția ”strtok()” și apoi introduse la fel într-o listă ordonată.
De fapt asta era pentru un număr arbitrar de elemente. Pentru cazul particular de numai 3 numere e mult mai ușor cum ai văzut și tu de fapt. |
#9
Posted 18 April 2022 - 17:35
https://en.cpprefere...p/algorithm/min
template<class T> const T& min(const T& a, const T& b) { return (b < a) ? b : a; } https://en.cpprefere...p/algorithm/max template<class T> const T& max(const T& a, const T& b) { return (a < b) ? b : a; }doar ca noi vrem sa comparam valorile absolute, fara a modifica valorea initiala template<class T> const T& max(const T& a, const T& b) { return (abs(a) < abs(b)) ? b : a; } template<class T> const T& min(const T& a, const T& b) { return (abs(a) > abs(b)) ? b : a; }Singura chestie la care trebuie "sa lucrezi" "pe bune" este la aflarea mijlocului template<class T> const T& middle(const T& a, const T& b, const T& c) { //your work here } using std::cout; using std::cin; using std::endl; int main() { signed int a, b, c; cin >> a >> b >> c; cout << min(min(a,b), c) << " "; cout << middle(a,b,c) << " "; cout << max(max(a,b), c) << endl; return 0; } Edited by MarianG, 18 April 2022 - 17:35. |
#11
Posted 18 April 2022 - 18:06
Daca se intereaseaza ce se intampla la "Second version", poate incearca el sa ofere solutia pentru n elemente.
|
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users