rendered paste body#include <stdio.h>#include <stdlib.h>#define ELEM_SWAP(a,b) { register elem_type t=(a);(a)=(b);(b)=t; }#define median(a,n) kth_smallest(a,n,(((n)&1)?((n)/2):(((n)/2)-1))) typedef float elem_type ;elem_type kth_smallest(elem_type a[], int n, int k){ register i,j,l,m ; register elem_type x ; l=0 ; m=n-1 ; while (l<m) { x=a[k] ; i=l ; j=m ; do { while (a[i]<x) i++ ; while (x<a[j]) j-- ; if (i<=j) { ELEM_SWAP(a[i],a[j]) ; i++ ; j-- ; } } while (i<=j) ; if (j<k) l=i ; if (k<i) m=j ; } return a[k] ;}int main(int argc, char ** argv){ elem_type a[1000]; FILE *fwirth; int i; int size; elem_type result; int kapa; if (argc != 2) { printf("Correct usage: ./heap file_name (linux) or heap file_name (windows)\n"); exit(1); } fwirth = fopen(argv[1], "r"); if (fwirth == NULL) { printf("Cannot open data file\n"); exit(0); } fscanf(fwirth, "%d", &size); printf("%d\n", size); for (i = 0; i < size; i++) fscanf(fwirth, "%f", &a[i]); kapa = size / 2; printf("%d\n", kapa); result = median(a, size/2); printf("%f\n", median(a,size)); }