47 23 12 17 30

Intrăm în for. i=1. (1<5=>i<n). Continuăm for-ul (s-a respectat condiția). p=i=1. (1>0=>p>0 și 23<47=>X[p]<X[p-1]). Intrăm în while (s-au respectat condițiile). aux=X[p]=X[1]=23. X[p]=X[1]=X[p-1]=X[1-1]=X[0]=47. X[p-1]=X[1-1]=X[0]=aux=23. Postdecrementăm p. (0=0=>p≤0 și răspuns nedeterminat). Ieșim din while (răspuns negativ).

23 47 12 17 30

Postincrementăm i. (2<5=>i<n). Continuăm for-ul (s-a respectat condiția). p=i=2. (2>0=>p>0 și 12<47=>X[p]<X[p-1]). Intrăm în while (s-au respectat condițiile). aux=X[p]=X[2]=12. X[p]=X[2]=X[p-1]=X[2-1]=X[1]=47. X[p-1]=X[2-1]=X[1]=aux=12. Postdecrementăm p. (1>0=>p>0 și 12<23=>X[p]<X[p-1]). Continuăm while-ul (s-au respectat condițiile). aux=X[p]=X[1]=12. X[p]=X[1]=X[p-1]=X[1-1]=X[0]=23. X[p-1]=X[1-1]=X[0]=aux=12. Postdecrementăm p. (0=0=>p≤0 și răspuns nedeterminat). Ieșim din while (răspuns negativ).

12 23 47 17 30

Postincrementăm i. (3<5=>i<n). Continuăm for-ul (s-a respectat condiția). p=i=3. (3>0=>p>0 și 17<47=>X[p]<X[p-1]). Intrăm în while (s-au respectat condițiile). aux=X[p]=X[3]=17. X[p]=X[3]=X[p-1]=X[3-1]=X[2]=47. X[p-1]=X[3-1]=X[2]=aux=17. Postdecrementăm p. (2>0=>p>0 și 17<23=>X[p]<X[p-1]). Continuăm while-ul (s-au respectat condițiile). aux=X[p]=X[2]=17. X[p]=X[2]=X[p-1]=X[2-1]=X[1]=23. X[p-1]=X[2-1]=X[1]=aux=17. Postdecrementăm p. (1>0=>p>0 și 17>12=>X[p]≥X[p-1]). Ieșim din while (nu s-a respectat a doua condiție).

12 17 23 47 30

Postincrementăm i. (4<5=>i<n). Continuăm for-ul (s-a respectat condiția). p=i=4. (4>0=>p>0 și 30<47=>X[p]<X[p-1]). Intrăm în while (s-au respectat condițiile). aux=X[p]=X[4]=30. X[p]=X[4]=X[p-1]=X[4-1]=X[3]=47. X[p-1]=X[4-1]=X[3]=aux=30. Postdecrementăm p. (3>0=>p>0 și 30>23=>X[p]≥X[p-1]). Ieșim din while (nu s-a respectat a doua condiție).

12 17 23 30 47

Postincrementăm i. (5=5=>i≥n). Ieșim din for (nu s-a respectat condiția).

 

#include <iostream>

using namespace std;

int main()

{

    int n,X[100];

    cin>>n;

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

        cin>>X[i];

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

    {

        int p=i;

        while (p>0&&a[p]<a[p-1])

        {

           int aux=a[p];

           a[p]=a[p-1];

           a[p-1]=aux;

           p--;

        }

    }

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

        cout<<X[i]<<' ';

}

Comentarii