[ Alexandar90 @ 18.01.2009. 19:46 ] @
Pokusao sam da napravim f-ju koja ce sortirati niz u rastuci poredak: Code: #include <iostream> using namespace std; void sort (int n,int niz[]); int main() { int n,y[10000]; y[1]=5;y[2]=4;y[3]=3;n=3; /*primer*/ cout<<y[1]<<y[2]<<y[3]<<endl; sort(n,y); /*sortiranje niza; n je broj clanova niza koji treba sortirati*/ cout<<y[1]<<y[2]<<y[3]; system ("pause"); return 0; } void sort (int n,int niz[]) { int i,j,p; for (i=1;i<n;i++) for (j=i+1,j<n+1;j++;) { if (niz[i]<niz[j]) { p=niz[i];niz[i]=niz[j];niz[j]=p; /*zamena mesta clanovima niza ukoliko je prethodni veci od narednog*/ } } } Naime, f-ja sort uporedjuje svaki prethodni clan niza sa svakim sledecim, i ukoliko je prethodni clan manji od narednog, njima se zamene mesta. Npr: niz je 3,1,2. Prvo uporedjuje 3 i 1, pa oni zamene mesta (niz je sada 1,3,2). Zatim uporedjuje 1 i 2, redosled ostaje isti. Onda uzima drugi clan niza, tj. 3 i uporedjuje ga sa 2; posto je 3 vece, menjaju im se mesta, a niz postaje 1,2,3. Kada ovaj kod za sortiranje stavim u glavni deo programa, 'main', on odradi posao, ali kada je napisan kao funkcija program prijavi gresku: unhandled exception...access violation. U cemu je problem? |