Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream fin("BAC.txt");
- /*
- 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.
- 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
- în șirul format cu aceleași valori, ordonat descrescător. Proiectați un algoritm eficient din punctul de vedere al
- memoriei utilizate și al timpului de executare.
- 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
- patra poziție în șirul 21, 17, 15, 15, 7, 6, 4).
- a. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)
- b. Scrieți programul C/C++ corespunzător algoritmului proiectat. (8p)
- */
- int main()
- {
- int n, i=1, j, v[50], ok,aux, p;
- while (!fin.eof())
- {
- fin >> v[i];
- i++;
- }
- p = v[1];
- do
- {
- ok = 1;
- for (j = 1; j <= i - 1; j++)
- {
- if (v[j] < v[j + 1])
- {
- aux = v[j];
- v[j] = v[j + 1];
- v[j + 1] = aux;
- ok = 0;
- }
- }
- } while (ok == 0);
- for (j = i; j >= 1; j--)
- {
- if (v[j] == p)
- {
- cout << j;
- break;
- }
- }
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement