C++

N uczniów ustawionych w jednym rzędzie postanowiło "posortować się" według wzrostu (od najniższego do najwyższego). Zasada przemieszczania ucznia jest następująca: pierwszy uczeń pyta drugiego o jego wzrost. Jeśli drugi jest niższy zamieniają się miejscami, jeśli nie - drugi pyta trzeciego itd. W ten sposób na końcu kolejki znajdzie się uczeń z najwyższym wzrostem.

Procedurę powtarzamy od poczatku tak długo, aż zyskamy posortowany względem wzrostu ciąg liczb naturalnych.

Wejście
n - ilość uczniów 1<=n<=100;
a1, a2, ...an - liczby całkowite oznaczające wzrosty poszczególnych uczniów 50<=ai<=200

Wyjście
Posortowany niemalejąco ciąg liczb ai podanych na wejściu.

Przykład
Dla danych wejściowych:
5
199 74 60 122 80
Wyjście:
60 74 80 122 199

Uwaga
Liczby do tablicy należy wybierac losowo (nie wczytujemy ich z klawiatury).

Podpowiedź:
Aby wczytać do tablicy 10-elementowej losowe liczby z zakresu np.<0,49> wpisujemy:

srand (timer (NULL));
for (int i=0;i<10;i++) tab[i]=rand()%50;

1

Odpowiedzi

  • Użytkownik Zadane
2010-01-21T19:38:47+01:00
Ja bym użył opcji :

if((c->next) && (c->wartosc < b->wartosc)) //