diff --git a/Q4.c b/Q4.c index 8c39f12..0fc3cc5 100644 --- a/Q4.c +++ b/Q4.c @@ -1,56 +1,63 @@ #include //Question 4 + +// Finds average value of array double find_average(const int arr[], int len) { - double sum = 0.0; - for(int i = 0; i < len; i++) { - sum += arr[i]; - } - return sum/len; + double sum = 0.0; + for(int i = 0; i < len; i++) { + sum += arr[i]; + } + return sum/len; } + // Returns the INDEX of the highest value in array int find_index_highest(const double arr[], int len) { - double highest = arr[0]; - int index_highest = 0; + double highest = arr[0]; + int index_highest = 0; - for(int i = 0; i < len; i++) { - if(arr[i] > highest) { - highest = arr[i]; - index_highest = i; - } - } - return index_highest; + for(int i = 0; i < len; i++) { + if(arr[i] > highest) { + highest = arr[i]; + index_highest = i; + } + } + return index_highest; } int main() { - int num_students, num_subjects; - printf("Enter number of students: "); - scanf("%d", &num_students); - printf("Enter number of subjects: "); - scanf("%d", &num_subjects); + // To test the functions + int num_students, num_subjects; + printf("Enter number of students: "); + scanf("%d", &num_students); + printf("Enter number of subjects: "); + scanf("%d", &num_subjects); - int grade_matrix[num_students][num_subjects]; - for(int i = 0; i < num_students; i++) { - printf("Enter student %d's grades: ", i+1); - for(int j = 0; j < num_subjects; j++) { - scanf("%d", &grade_matrix[i][j]); - } - printf("\n"); - } + // Create matrix of grades and use input to assign its values + int grade_matrix[num_students][num_subjects]; + for(int i = 0; i < num_students; i++) { + printf("Enter student %d's grades: ", i+1); + for(int j = 0; j < num_subjects; j++) { + scanf("%d", &grade_matrix[i][j]); + } + printf("\n"); + } - double average_grades[num_students]; - printf("Average Grades:\n"); - for(int i = 0; i < num_students; i++) { - average_grades[i] = find_average(grade_matrix[i], num_subjects); - printf("Student %d: %0.02f\n", i+1, average_grades[i]); - } + // Array to hold average grades of students + double average_grades[num_students]; + // Print every students average grades + printf("Average Grades:\n"); + for(int i = 0; i < num_students; i++) { + average_grades[i] = find_average(grade_matrix[i], num_subjects); + printf("Student %d: %0.02f\n", i+1, average_grades[i]); // Formatted to two decimal places + } - printf("Student with Highest Average: Student %d\n", (find_index_highest(average_grades, num_students) +1)); + printf("Student with Highest Average: Student %d\n", (find_index_highest(average_grades, num_students) +1)); - printf("Students with average >= 75:\n"); - for(int i = 0; i < num_students; i++) { - if(average_grades[i] >= 75.0) - printf("Student %d\n", i+1); - } + printf("Students with average >= 75:\n"); + for(int i = 0; i < num_students; i++) { + if(average_grades[i] >= 75.0) + printf("Student %d\n", i+1); + } - return 0; + return 0; }