File: Stare vježbe/vjezbe10/66__pfunkcije_sort.c
/* 66__pfunkcije_sort.c Primjena pointera na funkciju za implementaciju rutine za sortiranje int-ova po proizvoljno definiranom uredjaju. */ #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <time.h> int veci(int, int); int manji(int, int); void sort(int *a, int n, int (*compare)(int, int)) { int i, j, t; for(i = 0; i < n-1; i++) for(j = i+1; j < n; j++) if(compare(a[i], a[j])) { int t; t=a[i]; a[i]=a[j]; a[j]=t; }; } int main() { int n, k, *a; printf("Unesite zeljenu velicinu niza brojeva: "); scanf("%d", &n); a = (int*) malloc(n*sizeof(int)); srand((unsigned)time(NULL)); printf("Niz slucajnih brojeva [1-100]:\n"); for (k = 0; k < n; k++) { a[k] = rand() % 100 + 1; } sort(a, n, veci); printf("\nNiz brojeva sortiran uzlazno:\n"); for(k = 0; k < n; k++) sort(a, n, manji); printf("\nNiz brojeva sortiran silazno:\n"); for(k = 0; k < n; k++) free(a); return 0; } int veci(int x, int y) { return x>y; } int manji(int x, int y) { return x<y; }
|