Advertisement
silentkiler029

internship viva - by Ariful Islam Shanto

Jul 16th, 2020
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.18 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5. #include <time.h>
  6.  
  7. typedef struct {
  8.     char name[20];
  9.     long long reg_no;
  10.     int nops;
  11.     double cgpa;
  12. } student;
  13.  
  14. int main()
  15. {
  16.     int n;
  17.     scanf("%d", &n);
  18.     student info[n];
  19.     int i;
  20.     for(i = 0; i < n; i++) {
  21.         scanf("%s", &info[i].name);
  22.         scanf("%lld", &info[i].reg_no);
  23.         scanf("%d", &info[i].nops);
  24.         scanf("%lf", &info[i].cgpa);
  25.     }
  26.  
  27.     for(i = 0; i < n - 1; i++) {
  28.         for(int j = i + 1; j < n; j++) {
  29.             if(info[i].nops < info[j].nops) {
  30.                 student temp = info[j];
  31.                 for(int k = j; k > i; k--) {
  32.                     info[k] = info[k - 1];
  33.                 }
  34.                 info[i] = temp;
  35.             }
  36.         }
  37.     }
  38.  
  39.     int l = 0, r; /// for indexing
  40.  
  41.     for(i = 0; i < n; i++) {
  42.         if(i == n - 1) {
  43.             r = i;
  44.             for(int j = l; j < r; j++) {
  45.                 for(int k = j + 1; k < r; k++) {
  46.                     if(info[j].cgpa < info[k].cgpa) {
  47.                         student temp = info[k];
  48.                         for(int m = k; m > j; m--) {
  49.                             info[m] = info[m-1];
  50.                         }
  51.                         info[j] = temp;
  52.                     }
  53.                 }
  54.             }
  55.             l = r;
  56.         }
  57.  
  58.         else if(info[l].nops != info[i].nops) {
  59.             r = i;
  60.             for(int j = l; j < r; j++) {
  61.                 for(int k = j + 1; k < r; k++) {
  62.                     if(info[j].cgpa < info[k].cgpa) {
  63.                         student temp = info[k];
  64.                         for(int m = k; m > j; m--) {
  65.                             info[m] = info[m-1];
  66.                         }
  67.                         info[j] = temp;
  68.                     }
  69.                 }
  70.             }
  71.             l = r;
  72.         }
  73.     }
  74.  
  75.     printf("\nAfter sorting the list is:\n");
  76.     for(i = 0; i < n; i++) {
  77.         printf("%2d. ", i+1);
  78.         printf("%s ", info[i].name);
  79.         printf("%lld ", info[i].reg_no);
  80.         printf("%d ", info[i].nops);
  81.         printf("%0.2lf\n", info[i].cgpa);
  82.     }
  83.  
  84.  
  85.     return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement