Code:[/ #include<stdio.h> #include<string.h> #include<stdlib.h> struct Student { char fname[20], lname[20], id[10]; float golch ; }; typedef struct Student s1 ; //by the way golch means GPA// void read_students (s1 a[], int n) { int i; for(i=0; i<n; i++) { scanf("%s %s %s %f",&a[i].fname, &a[i].lname, &a[i].id, &a[i].golch); } } void print_students (s1 a[], int n) { int i; for(i=0; i<n; i++) { printf("%s %s %s %.1f\n",a[i].fname, a[i].lname, a[i].id, a[i].golch); } } int search_by_fname (s1 a[], int n, char fname[]) { int i; for(i=0; i<n; i++) { if(strcmp(a[i].fname, fname)==0) { return i; } else return -1; } } int search_by_lname (s1 a[], int n, char lname[]) { int i; for(i=0; i<n; i++) { if(strcmp(a[i].lname, lname)==0) { return i; } else return -1; } } int search_by_id (s1 a[], int n, char id[]) { int i; for(i=0; i<n; i++) { if(strcmp(a[i].id, id)==0) { return i; } else return -1; } } int search_by_golch (s1 a[], int n, float golch ) { int i; for(i=0; i<n; i++) { if(golch == a[i].golch) return i; else return -1; } } void sort_by_golch (s1 a[], int n) { int i,j; char tmp[25]; float f; for(i=0; i<n; i++) { for(j=i+1; j<n; j++) { if(a[i].golch<a[j].golch) { strcpy(tmp, a[i].fname); strcpy(a[i].fname, a[j].fname); strcpy(a[j].fname, tmp); strcpy(tmp, a[i].lname); strcpy(a[i].lname, a[j].lname); strcpy(a[j].lname, tmp); strcpy(tmp, a[i].id); strcpy(a[i].id, a[j].id); strcpy(a[j].id, tmp); f=a[i].golch; a[i].golch=a[j].golch; a[j].golch=f; } } } } int main() { s1 a[100]; int n, cmd, idx; printf("Oyutnii too : "); scanf( "%d", &n) ; read_students(a, n) ; print_students(a, n) ; char fname[20], lname[20], id[20]; float golch ; while (1) { printf( "1: Search by name, 2: search by last name, 3: search by ID number, 4: Search by GPA, 5: Sort by GPA, 6: Print, 7: Exit \n" ) ; scanf( "%d", &cmd) ; if(cmd == 1) { printf( "First name : " ) ; scanf( "%s", fname) ; idx = search_by_fname(a, n, fname) ; if(idx == -1) printf( "No match\n" ) ; else print(a[idx] ) ; } else if(cmd == 2) { printf ( "Last Name : " ) ; scanf ( "%s", lname) ; idx = search_by_lname (a, n, lname) ; if( idx == -1) printf ( "No match\n" ) ; else print (a[idx]) ; } else if(cmd == 3) { printf ( "ID number : " ) ; scanf ( "%s", id ) ; idx = search_by_id (a, n, id ) ; if( idx == -1) printf( "No match\n" ) ; else print(a[idx] ) ; } else if(cmd == 4) { printf( "GPA: " ) ; scanf( "%f ", &golch ) ; idx = search_by_golch(a, n, golch ) ; if(idx == -1) printf ("No match\n") ; else print(a[idx]) ; } else if(cmd == 5) sort_by_golch(a, n) ; else if(cmd == 6) print_students(a, n) ; else break; } return 0; } ]