🏗️📚Intermediate

Store and Sort Student Records by Age or ID

Sort by numeric field

Store student records and sort them by ID or age (numeric field).

Program Code

struct_sort_age.c
C
1#include <stdio.h>
2
3struct Student {
4 int id;
5 char name[50];
6 int age;
7};
8
9int main() {
10 struct Student students[] = {
11 {105, "Eve", 22},
12 {101, "Alice", 20},
13 {103, "Charlie", 19},
14 {102, "Bob", 21}
15 };
16 int n = 4;
17
18 printf("Original order:\n");
19 for (int i = 0; i < n; i++) {
20 printf("ID: %d, Name: %-10s, Age: %d\n",
21 students[i].id, students[i].name, students[i].age);
22 }
23
24 // Sort by ID (ascending)
25 for (int i = 0; i < n - 1; i++) {
26 for (int j = 0; j < n - i - 1; j++) {
27 if (students[j].id > students[j+1].id) {
28 struct Student temp = students[j];
29 students[j] = students[j + 1];
30 students[j + 1] = temp;
31 }
32 }
33 }
34
35 printf("\nSorted by ID:\n");
36 for (int i = 0; i < n; i++) {
37 printf("ID: %d, Name: %-10s, Age: %d\n",
38 students[i].id, students[i].name, students[i].age);
39 }
40
41 // Sort by age (ascending)
42 for (int i = 0; i < n - 1; i++) {
43 for (int j = 0; j < n - i - 1; j++) {
44 if (students[j].age > students[j+1].age) {
45 struct Student temp = students[j];
46 students[j] = students[j + 1];
47 students[j + 1] = temp;
48 }
49 }
50 }
51
52 printf("\nSorted by age:\n");
53 for (int i = 0; i < n; i++) {
54 printf("ID: %d, Name: %-10s, Age: %d\n",
55 students[i].id, students[i].name, students[i].age);
56 }
57
58 return 0;
59}
Output

Original order:

ID: 105, Name: Eve , Age: 22

ID: 101, Name: Alice , Age: 20

ID: 103, Name: Charlie , Age: 19

ID: 102, Name: Bob , Age: 21

 

Sorted by ID:

ID: 101, Name: Alice , Age: 20

ID: 102, Name: Bob , Age: 21

ID: 103, Name: Charlie , Age: 19

ID: 105, Name: Eve , Age: 22

 

Sorted by age:

ID: 103, Name: Charlie , Age: 19

ID: 101, Name: Alice , Age: 20

ID: 102, Name: Bob , Age: 21

ID: 105, Name: Eve , Age: 22