Code:/* I need help How can I move away from qsort all members that are not have enought points */ /* I wanna do some filer function (base on qsort) that throw away all field elements that doesent satisfy criterion (what is incoming argument of function filer)*/ /* In function does_have_enought_points all members with let's say udenr 100 points. drop out*/ #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 1024 #define MAXS 128 struct student{ char name[MAX]; char lastname[MAX]; int points; }; typedef struct student STUDENT; int does_have_enought_points( const void *a ) { } void filter( void *base, int *num, int width, int(*fn_criterion)(const void*)) { } int compare_points(const void *a, const void *b) { return ( ((STUDENT*)a)->points - ((STUDENT*)b)->points); } void load( STUDENT a[MAXS], int n) { int i; for(i = 0; i < n; i++) { printf("Insert name: "); scanf("%s", &a[i].name); printf("Insert lastname: "); scanf("%s", &a[i].lastname); printf("Insert points: "); scanf("%d", &a[i].points); } } void write_out( STUDENT a[MAXS], int n) { int i; for( i = 0; i < n; i++ ) { printf("%s ", a[i].name); printf("%s ", a[i].lastname); printf("%d ", a[i].points); printf("\n"); } } int main() { STUDENT a[MAXS]; int n = 0; printf("How many students do you wanna enter?\n"); scanf("%d", &n ); load( a, n ); filter( a, &n, sizeof(STUDENT), does_have_enought_points); write_out( a, n ); qsort( a, n, sizeof(STUDENT), compare_points); write_out( a, n ); return 0; }