diff --git a/gmon.out b/gmon.out new file mode 100644 index 0000000..0cd2ed8 Binary files /dev/null and b/gmon.out differ diff --git a/student_rank b/student_rank new file mode 100755 index 0000000..b306940 Binary files /dev/null and b/student_rank differ diff --git a/student_rank.c b/student_rank.c index af84003..5e68bfa 100644 --- a/student_rank.c +++ b/student_rank.c @@ -6,120 +6,118 @@ #include "heapsort.h" #include "bubblesort.h" -void generate_grades(int** students_array, int students_number, int grades_number) +void generate_grades(int **students_array, int students_number, int grades_number) { int i = 0; - for(i=0;i= 0; i--) + for (i = students_number - 1; i >= 0; i--) { - if(grades_array[i] == student_grade) - { - position = students_number-i; - break; - } + if (grades_array[i] == student_grade) + { + position = students_number - i; + break; + } } return position; } -void sort_students(int** students_rank, int** students_array, int students_number, int grades_number) +void sort_students(int **students_rank, int **students_array, int students_number, int grades_number) { int i = 0, j = 0; - for(i = 0; i < grades_number; i++) + for (i = 0; i < grades_number; i++) { - int * grades = (int*) malloc(students_number*sizeof(int)); - for(j = 0; j < students_number; j++) - { - grades[j] = students_array[j][i]; - } - bubblesort(grades,students_number); - for(j = 0; j < students_number; j++) - { - students_rank[j][i] = find_rank_student(students_array[j][i],grades,students_number); - } - free(grades); + int *grades = (int *)malloc(students_number * sizeof(int)); + for (j = 0; j < students_number; j++) + { + grades[j] = students_array[j][i]; + } + bubblesort(grades, students_number); + for (j = 0; j < students_number; j++) + { + students_rank[j][i] = find_rank_student(students_array[j][i], grades, students_number); + } + free(grades); } } -int main(int argc, char** argv) +int main(int argc, char **argv) { - int** student_grades = NULL; - int** student_ranks = NULL; + int **student_grades = NULL; + int **student_ranks = NULL; int students_length = 0; int grades_length = 0; int debug_mode = 0; - - if(argc != 4) + + if (argc != 4) { - printf("Usage : %s \n",argv[0]); + printf("Usage : %s \n", argv[0]); return -1; } students_length = atoi(argv[1]); grades_length = atoi(argv[2]); debug_mode = atoi(argv[3]); - student_grades = (int**) malloc(students_length*sizeof(int*)); - student_ranks = (int**) malloc(students_length*sizeof(int*)); - generate_grades(student_grades,students_length,grades_length); - generate_ranks(student_ranks,students_length,grades_length); - - sort_students(student_ranks,student_grades,students_length,grades_length); - - if(debug_mode) + student_grades = (int **)malloc(students_length * sizeof(int *)); + student_ranks = (int **)malloc(students_length * sizeof(int *)); + generate_grades(student_grades, students_length, grades_length); + generate_ranks(student_ranks, students_length, grades_length); + + sort_students(student_ranks, student_grades, students_length, grades_length); + + if (debug_mode) { - print_student_array(student_grades,students_length,grades_length); - print_student_array(student_ranks,students_length,grades_length); + print_student_array(student_grades, students_length, grades_length); + print_student_array(student_ranks, students_length, grades_length); } - free_array(student_grades,students_length); - free_array(student_ranks,students_length); + free_array(student_grades, students_length); + free_array(student_ranks, students_length); free(student_grades); free(student_ranks); return 0; } -