Prosila bym uzywac prostych algorytmow typu: if, while, for, bo jestem na poziomie liceum i niektorych mogla bym nie miec na lekcji:) Zadanie w programie 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;
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
//maksymalny i minimalny wzrost
const int min = 100;
const int max = 200;
//wczytanie liczby uczniow
int size;
cin>>size;
//stworzenie tablicy, przechowujacej wzrost
int* tab = new int[size];
//wylosowanie elementow tablicy
srand(time(NULL));
for(int i=0; i<size; i++)
tab[i] = (rand()%(max+1-min)) + min;
//algorytm sortowania
bool zamiana = true;
for(int i=0; i<size && zamiana; i++)
{
zamiana = false;
for(int j=0; j<size-1; j++)
if(tab[j]>tab[j+1])
{
int temp = tab[j];
tab[j] = tab[j+1];
tab[j+1] = temp;
zamiana = true;
}
}
//wypisanie posortowanej tablicy
for(int i=0; i<size; i++)
cout<<tab[i]<<" ";
cout<<endl;
delete []tab;
system("PAUSE");
return 0;
}