Advertisement
ioana_martin98

Untitled

May 8th, 2022
717
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.11 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5. ifstream fin("numere.txt");
  6.  
  7. /*
  8. 12. Fișierul numere.txt conține cel mult 10 5 numere naturale din intervalul [1,10 9 ], câte unul pe fiecare linie. Se cere să
  9. se afișeze pe ecran cel mai mare număr care se poate forma cu toate cifrele care apar în numerele din fișier, ca în
  10. exemplu. Proiectați un algoritm eficient din punctul de vedere al timpului de executare.
  11. Exemplu: dacă fișierul are conținutul 263 39628 79 887308
  12. se afișează 9988887766333220
  13. a. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)
  14. b. Scrieți programul C/C++ corespunzător algoritmului proiectat.(8p)
  15. */
  16.  
  17. int main()
  18. {
  19.     int i = 1, j, v[100001], ok, aux, x;
  20.     while (!fin.eof())
  21.     {
  22.         fin >> x;
  23.         while (x != 0)
  24.         {
  25.             v[i] = x % 10;
  26.             i++;
  27.             x /= 10;
  28.         }
  29.     }
  30.     do
  31.     {
  32.         ok = 1;
  33.         for (j = 1; j <= i - 1; j++)
  34.         {
  35.             if (v[j] > v[j + 1])
  36.             {
  37.                 aux = v[j];
  38.                 v[j] = v[j + 1];
  39.                 v[j + 1] = aux;
  40.                 ok = 0;
  41.             }
  42.         }
  43.     } while (ok == 0);
  44.     for (j = i; j >= 2; j--)
  45.         cout << v[j];
  46.     return 0;
  47. }
  48.  
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement