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

30. Să se localizeze elementul maxim şi toate elementele dinaintea lui să se ordoneze crescător, iar cele de după el, descrescător, afişându-se rezultatul.
În c++​


whow: elementul maxim dintr-un vector?
jamcro12: da

Răspunsuri la întrebare

Răspuns de whow
0

Răspuns:

#include <iostream>

using namespace std;

void citesteVectorul(int v[], int n) {

   for (int i = 0; i < n; i++)

       cin >> v[i];

}

void afiseazaVectorul(int v[], int n) {

   for (int i = 0; i < n; i++)

       cout << v[i] << " ";

   cout << "\n";

}

int gasestePozitiaMaximului(int v[], int n) {

   int max = v[0], index = -1;

   for (int i = 1; i < n; i++) {

       if (max < v[i]) {

           max = v[i];

           index = i;

       }

   }

   if (index > -1)

       return index;

}

void ordoneazaCrescator(int v[], int d) {

   int aux;

   for (int i = 1; i < d; i++) {

       for (int j = 0; j < d; j++) {

           if (v[j] > v[i]) {

               aux = v[i];

               v[i] = v[j];

               v[j] = aux;

           }

       }

   }

}

int main() {

   int n, m, i;

   cin >> n;

   int v[n];

   cout << "Adaugam " << n << " valori in vector" << "\n";

   citesteVectorul(v, n);

   cout << "Vecotrul initial" << "\n";

   afiseazaVectorul(v, n);

   cout << "Pozitia elementului maxim din vector este " << gasestePozitiaMaximului(v, n)

        << " care in vector se regasete cu valoarea " << v[gasestePozitiaMaximului(v, n)];

   cout << endl;

   ordoneazaCrescator(v, gasestePozitiaMaximului(v, n));

   cout << endl;

   cout << "Elementele dinaintea valorii " << v[gasestePozitiaMaximului(v, n)] << " ordonate crescator " << "\n";

   afiseazaVectorul(v, gasestePozitiaMaximului(v, n));

   return 0;

}

Explicație:

Ai mai jos o screen cu codul intr-un text editor si un exemplu sa vezi ca codul functioneaza .

Asa ca iti urez bafta si sper sa intelegi cum am procedat si de ce functioneaza codul :)) ,daca nu astept intrebari

Anexe:
Alte întrebări interesante