Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
casa verde 2024

Intrerupator cu N - doza doar cu ...

Incalzire casa fara gaz/lemne

Incalzire in pardoseala etapizata
 Suprataxa card energie?!

Cum era nivelul de trai cam din a...

probleme cu ochelarii

Impozite pe proprietati de anul v...
 teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...

Rezultat RMN
 Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor

Discuții despre TVR Sport HD.
 

C++ . Valoarea absoluta a unui numar .

- - - - -
  • Please log in to reply
10 replies to this topic

#1
Arrowwq

Arrowwq

    New Member

  • Grup: Candidate Members
  • Posts: 17
  • Înscris: 12.01.2022
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

#2
sftpdt

sftpdt

    Senior Member

  • Grup: Senior Members
  • Posts: 3,650
  • Înscris: 29.08.2013
Ce ai incercat sa faci? :)

#3
Arrowwq

Arrowwq

    New Member

  • Grup: Candidate Members
  • Posts: 17
  • Înscris: 12.01.2022
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 } HELP!

Edited by MarianG, 18 April 2022 - 17:38.
cu tag-uri code si fara STRIGATE


#4
roPopa

roPopa

    Active Member

  • Grup: Members
  • Posts: 1,249
  • Înscris: 21.01.2011
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
yonut_a

yonut_a

    Trala la la la

  • Grup: Senior Members
  • Posts: 3,944
  • Înscris: 03.08.2008
Pai tu nu le compari nicaieri valoare absoluta, tu doar le compari intre ele.

#6
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,195
  • Înscris: 24.02.2007
.

Edited by dani.user, 18 April 2022 - 16:12.


#7
Arrowwq

Arrowwq

    New Member

  • Grup: Candidate Members
  • Posts: 17
  • Înscris: 12.01.2022
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
rickysyv

rickysyv

    Senior Member

  • Grup: Senior Members
  • Posts: 2,620
  • Înscris: 08.03.2008
Ă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
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,383
  • Înscris: 10.08.2005
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.


#10
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,195
  • Înscris: 24.02.2007
Mai degraba o sortare pentru n elemente (nu doar 3).

#11
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,383
  • Înscris: 10.08.2005
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

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate