👤

Bunaaa!
Am nevoie de un subprogram care sa realizeze sortarea in ordine crescatoare prin metoda bulelor, dar si de programul prin care apelez suprograbul si afisez vectorul rezultat dupa sortare. Eu le-am facut pe ambele, dar probabil nu am facut apelul cum trebuie, deoarece citeste n-ul(numarul de elemente), citeste elementele si apoi se inchide. Am mai tot incercat sa rezolv asta si sa ruleze cum trebuie, dar nu am reusit.
Ma intereseaza mai mult acel program, ci nu subprogramul.
Multumesc anticipat.


Răspuns :

Presupun ca lucrezi in C++ si te referi la int main(). Daca da, uite cam asa ar trebui sa arate:
int main()
{
int n, v[100];
cin>>n;
for(int i=0; i<n; i++)
cin>>v[i];
sortare(); // aici tu stii ce parametrii ai
for(int i=0; i<n; i++)
cout<<v[i]<<" ";
}

Asta iti trebuia? afisearea?
Salut. Ti-am lasat solutia problemei mai jos. Bafta in continuare!


#include <iostream>

using namespace std;

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

        for (int i = 0; i < n; i++) 
        {                       
            cin >> v[i];   
        }
}

void Write(int v[], int n)
{       
          cout << endl;
          for (int i = 0; i < n; i++) 
          {                     
                   cout << v[i] << " ";
          }

        cout << endl;
}

void BubbleSort(int v[], int n)
{
       bool found;
       int aux;

       do
      {
                    found = false;

                    for (int i = 0; i < n- 1; i++)
                    {
                             if (v[i] > v[i + 1])
                            {
                                      aux = v[i];
                                      v[i] = v[i + 1];
                                      v[i + 1] = aux;

                                      found = true;
                             }
                     }

       } while (found);
}

int main()
{
      int n, v[100];

      cin >> n;

      Read(v, n);
      BubbleSort(v, n);
      Write(v, n);
 
      return 0;
}