Join Examsbook
861 0

Q: How would you use qsort() function to sort an array of structures?

  • Show AnswerHide Answer
  • Workspace

Answer :
Explanation :

#include "string.h" #include "stdlib.h" struct stud {        int rollno;        int marks;        char name[30]; }; int sort_m (struct stud *, struct stud *); int sort_name (struct stud *, struct stud *); int sort_marks (struct stud *, struct stud *);   main() { static struct stud ss[] = {                                             { 15, 96, "Akshay" },                                             { 2, 97, "Madhuri" },                                             { 8, 85, "Aishvarya" },                                             { 10, 80, "Sushmita" }                                    }; int x,w; clrscr(); w = sizeof (struct stud);   printf ('\nIn order of roll numbers:"); qsort (ss, 4, w, sort_rn); for(x=0; x<4;x++)      printf ("\n%d%s%d", ss[x].rollno, ss[x].name,ss[x].marks);   printf("\n\nIn order of names:"); qsort(ss, 4, sort_name);   for (x=0; x<4;x++)       printf("\n%d%s%d",ss[x].rollno, ss[x].name,ss[x].marks); printf("\n\nIn order of marks:"); qsort(ss,4,w,sort_marks);   for (x=0;x<4;x++)       printf ("\n%d%s%d",ss[x].rollno,ss[x].name,ss[x].marks); } int sort_rn (struct stud *t1, struct stud *t2) {      return (t1->rollno-t2->rollno); }   int sort_name (struct stud *t1, struct stud *t2) {      return (strcmp(t1->name,t2->name)); } int sort_marks (struct stud *t1, struct stud *t2) {      return (t2->marks-t1->marks); }

Are you sure

  Report Error

Please Enter Message
Error Reported Successfully