Informatică, întrebare adresată de ancastefania4410, 8 ani în urmă

6. Se citește de la tastatură un număr cu exact 3 cifre. Afișați numărul obținut prin scrierea în ordine crescătoare a cifrelor numărului dat. Exemplu. Dacă se citeşte numărul 281, se va afişa numărul 128. CU ALGORITM ​.

Răspunsuri la întrebare

Răspuns de realcata01
2

Evident,este in C++

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

   int n,a,b,c;

       

   cout<<"Numar de 3 cifre: "; cin>>n;

   

   a=n/100;

   b=(n/10)%10;

   c=n%10;

   

   cout<<"Ordonate crescator: ";

   

   if(c<=b&&b<=a){

   cout<<c<<" "<<b<<" "<<a;

   }

   else if(c<=a&&a<=b){

   cout<<c<<" "<<a<<" "<<b;

   }

   else if(a<=c&&c<=b){

   cout<<a<<" "<<c<<" "<<b;

   }

   else if(a<=b&&b<=c){

   cout<<a<<" "<<b<<" "<<c;

   }

   else if(b<=c&&c<=a){

   cout<<b<<" "<<c<<" "<<a;

   }

   else if(b<=a&&a<=c){

   cout<<b<<" "<<a<<" "<<c;

   }

   

   return 0;

}

Răspuns de andrei750238
7

#include <iostream>

#include <algorithm>

using namespace std;

int main() {

int nr;

//Citire date

cout << "Introduceti numarul : ";

cin >> nr;

//Despartire in cifre

int a = nr % 10;

int b = nr / 10 % 10;

int c = nr / 100;

//Afisare numar format din cifre in ordine crescatoare

cout << "Numarul format este : " <<  min(min(a, b), c) << a + b + c - min(min(a, b), c) - max(max(a, b), c) << max(max(a, b), c);

}

► Nota :

  • min(a,b) returneaza minimul dintre numerele a si b
  • min(min(a,b),c) returneaza minumul dintre numerele a,b,c
  • idem pentru functia max, care functioneaza absolut identic dar returneaza maximul
  • cel mai mic numar + cel mai mare numar + numarul din mijloc = a+b+c, deci numarul din mijloc se poate scrie ca a + b + c - min(min(a, b), c) - max(max(a, b), c)
Anexe:
Alte întrebări interesante