Napravite C++ program koji će prvo učitati n, 0<n<100. Nakon toga program treba učitati n decimalnih brojeva, te ih ispisati od najmanjeg prema najvećem.
Program treba raditi na sljedeći način: treba koristiti polje za pohranjivanje brojeva. Nakon što učita k-ti broj, mora provjeriti je li posljednji upisani broj u polju veći od upravo učitanog broja, te ako nije, staviti upravo učitani broj na iza njega. Ako jeste, onda treba posljednji upisani broj u polju pomaknuti u sljedeći element, a upravo učitani broj se uspoređuje s pretposljednjim u polju. Ako je pretposljednji upisani broj u polju manji od upravo učitanog, onda učitani treba upisati na mjesto iza njega, a u suprotnom pretposljednji upisani broj u polju treba pomaknuti u sljedeći element polaj, a upravo učitani broj usporediti s prethodnim brojem od predposljednjeg. Ovaj se postupak ponavlja sve dok se u polju ne naiđe na broj koji je manji od upravo učitanog ili dok se ne pomaknu svi brojevi u polju za jednu poziciju dalje, i na taj se način oslobodi 0-ti element polja, te se upravo učitani element polja smješta na 0-tu poziciju.
Ovako sam ga ja riješio, no ne po navedenom postupku:
#include <iostream>
using namespace std;
int main(){
int n, j, l, i = 0;
float unos, k;
float *polje;
polje = new float[100];
cout << "Upisite koliko brojeva treba poredati po velicini: ";
cin >> n;
do{
cout << "Upisite " << ++i << ". broj: ";
cin >> unos;
polje[i - 1] = unos;
}while(i < n);
for(l = 1; l < n + 1; l++){
for(j = 1; j < n; j++){
if(polje[j] < polje[j - 1]){
k = polje[j - 1];
polje[j - 1] = polje[j];
polje[j] = k;
}
}
}
cout << "Polje ima vrijednosti: ";
for(i = 0; i < n; i++){
cout << polje[i];
if(i != n - 1){
cout << ", ";
}
else
{
cout << endl;
}
}
delete polje;
return 0;
}
[Ovu poruku je menjao maximus_1 dana 04.04.2006. u 16:33 GMT+1]