60 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <stdio.h>
 | |
| 
 | |
| typedef struct {
 | |
|     char name[50];
 | |
|     int roll_no;
 | |
|     char grade;
 | |
| } student;
 | |
| 
 | |
| void read_students(student students[], int n) {
 | |
|     for (int i = 0; i < n; i++) {
 | |
|         printf("Enter details for student %d:\n", i + 1);
 | |
|         printf("Name: ");
 | |
|         scanf("%s", students[i].name);
 | |
|         printf("Roll No: ");
 | |
|         scanf("%d", &students[i].roll_no);
 | |
|         printf("Grade: ");
 | |
|         scanf(" %c", &students[i].grade);
 | |
|     }
 | |
| }
 | |
| 
 | |
| void display_students(student students[], int n) {
 | |
|     printf("\nStudent Information:\n");
 | |
|     for (int i = 0; i < n; i++) {
 | |
|         printf("Name: %s, Roll No: %d, Grade: %c\n", students[i].name, students[i].roll_no, students[i].grade);
 | |
|     }
 | |
| }
 | |
| 
 | |
| void sort_students_by_roll(student students[], int n) {
 | |
|     student temp;
 | |
|     for (int i = 0; i < n - 1; i++) {
 | |
|         for (int j = i + 1; j < n; j++) {
 | |
|             if (students[i].roll_no > students[j].roll_no) {
 | |
|                 temp = students[i];
 | |
|                 students[i] = students[j];
 | |
|                 students[j] = temp;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| int main() {
 | |
|     int n;
 | |
| 
 | |
|     printf("Enter the number of students: ");
 | |
|     scanf("%d", &n);
 | |
| 
 | |
|     student students[n];
 | |
| 
 | |
|     read_students(students, n);
 | |
| 
 | |
|     printf("\nBefore sorting:\n");
 | |
|     display_students(students, n);
 | |
| 
 | |
|     sort_students_by_roll(students, n);
 | |
| 
 | |
|     printf("\nAfter sorting by roll number:\n");
 | |
|     display_students(students, n);
 | |
| 
 | |
|     return 0;
 | |
| }
 | 
