Untitled
unknown
plain_text
19 days ago
2.3 kB
3
Indexable
Never
/*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; }
Leave a Comment