#include #include #include #include #define NAME_LEN 20 #define SURNAME_LEN 25 #define N 3 typedef struct Student { int number; char name[NAME_LEN]; char surname[SURNAME_LEN]; float midGrade; float finalGrade; } Student; float CalculateAverage(float midGrade, float finalGrade) { return (midGrade * 0.4) + (finalGrade * 0.6); } void SortByName(Student* students) { int i, j; Student temp; for(j = 1; j < N; ++j) { temp = *(students + j); i = j - 1; while(i >= 0 && strcmp((students + i)->name, temp.name) > 0) { *(students + i + 1) = *(students + i); --i; } *(students + i + 1) = temp; } } void Display(Student* students) { for(int i = 0; i < N; ++i) { std::cout << (students + i)->name << std::endl; } } Student* SearchByName(Student* students, const char* search) { int i = 0; while( i < N ) { if(strcmp((students + i)->name, search) == 0) { return (students + i); } ++i; } return NULL; } int main() { Student* students = (Student*) malloc(sizeof(Student) * N); int i = 0; // do // { // printf("Enter Number, Name, Surname, mid grade and final grade:\n"); // scanf("%d %s %s %f %f", &(students + i)->number, (students + i)->name, (students + i)->surname, &(students + i)->midGrade, &(students + i)->finalGrade); // ++i; // } while (i != N); strcpy((students + 0)->name, "abc"); strcpy((students + 1)->name, "ab"); strcpy((students + 2)->name, "a"); // float sum = 0; // for(i = 0; i < N; ++i) // { // sum+= CalculateAverage((students + i)->midGrade, (students + i)->finalGrade); // } // printf("Average year-end grade is %.2f", sum / N); SortByName(students); //puts(""); Display(students); printf("Enter search name:"); char search[NAME_LEN]; scanf("%s", search); Student* found = SearchByName(students, search); if(found != NULL) { printf("Number:%d, Name:%s", found->number, found->name); } else { printf("Student wiith name %s cannot be found!", search); } return 0; }