Untitled
unknown
plain_text
a year ago
2.3 kB
9
Indexable
/*Napisati program za sortiranje dinamicki alociranog niza cija se duzina i elementi unose preko konzole.
IMPLEMENTIRATI: 1) funkciju za unos elemenata sa dva argumenta: 1.pokazivac na niz 2.duzina niza
2) funkciju za sortiranje sa tri argumenta: 1.pokazivac na niz 2.duzina niza 3.vrsta sortiranja (rastuce,opadajuce) - nabrojivi tip podataka
3) funkciju za stampanje elemenata sa dva argumenta : 1.pokazivac na niz 2.duzina niza*/
#include <iostream>
enum Sort{
rastuce,
opadajuce,
};
//1
void unosElemenata(int* niz, int duzina){
std::cout << "Unesite elemente niza: " << std::endl;
for(int i = 0; i<duzina; i++){
std::cout << "\tniz[" << i << "] = ";
std::cin >> niz[i];
}
//std::cout << std::endl;
}
//2
void sortiraj(int* niz, int duzina, Sort sort){
switch(sort){
case rastuce:
for(int i = duzina-1; i>=0; i--){
for(int j = 0; j<i; j++){
if(niz[j] > niz[j+1]){
int temp = niz[j];
niz[j] = niz[j+1];
niz[j+1] = temp;
}
}
}
break;
case opadajuce:
for(int i = duzina-1; i>=0; i--){
for(int j = 0; j<i; j++){
if(niz[j] < niz[j+1]){
int temp = niz[j];
niz[j] = niz[j+1];
niz[j+1] = temp;
}
}
}
break;
}
}
//3
void stampaj(int* niz,int duzina){
for(int i = 0; i<duzina; i++){
std::cout << "\tniz["<< i <<"] = " << niz[i] <<std::endl;
}
//std::cout << std::endl;
}
int main(){
int duzina;
std::cout << "Unesite duzinu niza: ";
std::cin >> duzina;
std::cout << std::endl;
if(duzina == 0){
std::cout << "Duzina mora biti pozitivan broj veci od nule!"<<std::endl;
return 0;
}
int* niz{new int[duzina]}; // ili int *niz = new int[duzina]; dinam alok niza intova duzine "duzina"
if(niz == NULL){
std::cout << "Racunar nema dovoljno memorije" << std::endl;
return 0;
}
// ili int* niz{new (std::nothrow) int[duzina]};
//if(!niz) std::cerr << "couldnt allocate"
unosElemenata(niz,duzina);
std::cout << "Niz pre sortiranja: " << std::endl;
stampaj(niz,duzina);
sortiraj(niz,duzina,Sort::opadajuce);
std::cout << "Niz posle sortiranja: " << std::endl;
stampaj(niz,duzina);
//oslobadjanje dinamicki alocirane memorije
delete[] niz;
return 0;
}
Editor is loading...
Leave a Comment