Advertisement
ioana_martin98

Untitled

May 8th, 2022
718
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5. ifstream fin("BAC.txt");
  6.  
  7. /*
  8. 11. Fișierul bac.txt conține un șir de cel mult 105 numere naturale din intervalul [1,109], separate prin câte un spațiu.
  9. Se cere să se afișeze pe ecran cea mai mare poziție pe care ar putea-o ocupa primul termen al șirului aflat în fișier
  10. în șirul format cu aceleași valori, ordonat descrescător. Proiectați un algoritm eficient din punctul de vedere al
  11. memoriei utilizate și al timpului de executare.
  12. Exemplu: dacă fișierul bac.txt conține numerele 15 7 15 17 6 4 21 se afișează pe ecran 4 (15 se află pe a treia și pe a
  13. patra poziție în șirul 21, 17, 15, 15, 7, 6, 4).
  14. a. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)
  15. b. Scrieți programul C/C++ corespunzător algoritmului proiectat. (8p)
  16. */
  17.  
  18. int main()
  19. {
  20.     int n, i=1, j, v[50], ok,aux, p;
  21.     while (!fin.eof())
  22.     {
  23.         fin >> v[i];
  24.         i++;
  25.     }
  26.     p = v[1];
  27.     do
  28.     {
  29.         ok = 1;
  30.         for (j = 1; j <= i - 1; j++)
  31.         {
  32.             if (v[j] < v[j + 1])
  33.             {
  34.                 aux = v[j];
  35.                 v[j] = v[j + 1];
  36.                 v[j + 1] = aux;
  37.                 ok = 0;
  38.             }
  39.         }
  40.     } while (ok == 0);
  41.     for (j = i; j >= 1; j--)
  42.     {
  43.         if (v[j] == p)
  44.         {
  45.             cout << j;
  46.             break;
  47.         }
  48.     }
  49.     cout << endl;
  50.  
  51.     return 0;
  52. }
  53.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement