Code:
#include <stdio.h>#include<conio.h>
#define STUDENTS 41
#define EXAMS 5
int minimum( const int grades[][ EXAMS ], int pupils, int tests );
int maximum( const int grades[][ EXAMS ], int pupils, int tests );
double average( const int setOfGrades[], int tests );
void printArray( const int grades[][ EXAMS ], int pupils, int tests );
int main(void)
{
int student;
const int studentGrades[ STUDENTS ][ EXAMS ] =
{ {11,00, 20,55, 20,00, 51,00, 80,00},
{10,00, 30,00, 15,00, 18,00, 44,00},
{5,00, 20,00, 20,00, 55,00, 64,00},
{20,00, 15,00, 15,00, 56,00, 63,00},
{5,00, 20,00, 64,00, 55,00, 54,00},
{20,00, 15,00, 80,00, 54,00, 63,00},
{5,00, 64,00, 20,00, 90,00, 51,00},
{5,00, 6,00, 15,00, 20,00, 18,00},
{20,00, 26,00, 20,00, 15,00, 55,00},
{5,00, 16,00, 15,00, 20,00, 56,00},
{10,00, 16,00, 64,00, 15,00, 32,00},
{5,00, 50,00, 55,00, 85,00, 45,00},
{5,00, 25,00, 65,00, 100,00, 58,00},
{20,00, 43,00, 32,00, 51,00, 20,00},
{5,00, 64,00, 45,00, 18,00, 5,00},
{58,00, 68,00, 58,00, 85,00, 53,00},
{5,00, 20,00, 85,00, 70,00, 47,00},
{5,00, 15,00, 85,00, 70,00, 34,00},
{5,00, 16,00, 32,00, 80,00, 81,00},
{25,00, 45,00, 45,00, 15,00, 71,00},
{85,00, 32,00, 58,00, 20,00, 85,00},
{5,00, 20,00, 85,00, 53,00, 40,00},
{30,00, 30,00, 35,00, 50,00, 50,00},
{5,00, 20,00, 15,00, 85,00, 47,00},
{60,00, 25,00, 15,00, 85,00, 59,00},
{5,00, 35,00, 20,00, 10,00, 30,00},
{20,00, 5,00, 53,00, 35,00, 43,00},
{70,00, 60,00, 40,00, 40,00, 66,00},
{20,00, 35,00, 95,00, 75,00, 38,00},
{70,00, 9,00, 60,00, 59,00, 32,00},
{5,00, 5,00, 35,00, 30,00, 32,00},
{5,00, 55,00, 80,00, 50,00, 16,00},
{20,00, 43,00, 70,00, 95,00, 37,00},
{5,00, 29,00, 80,00, 100,00, 43,00},
{60,00, 60,00, 35,00, 38,00, 60,00},
{40,00, 50,00, 85,00, 32,00, 16,00},
{35,00, 60,00, 60,00, 32,00, 47,00},
{5,00, 6,00, 45,00, 50,00, 50,00},
{100,00,59,00, 85,00, 65,00, 61,00},
{59,00, 60,00, 60,00, 66,00, 60,00},
{30,00, 28,00, 35,00, 38,00, 32,00}};
printf( "The array is:\n" );
printArray( studentGrades, STUDENTS, EXAMS );
printf( "\n\nLowest grade: %d\nHighest grade: %d\n",
minimum( studentGrades, STUDENTS, EXAMS ),
maximum( studentGrades, STUDENTS, EXAMS ) );
for ( student = 0; student < STUDENTS; student++ ) {
printf( "The average grade for student %d is %.2f\n",
student, average( studentGrades[ student ], EXAMS ) );
}
getch();
return 0;
}
int minimum( const int grades[][ EXAMS ], int pupils, int tests )
{
int i;
int j;
int lowGrade = 100;
for ( i = 0; i < pupils; i++ ) {
for ( j = 0; j < tests; j++ ) {
if ( grades[ i ][ j ] < lowGrade ) {
lowGrade = grades[ i ][ j ];
}
}
}
return lowGrade;
}
int maximum( const int grades[][ EXAMS ], int pupils, int tests )
{
int i;
int j;
int highGrade = 0;
for ( i = 0; i < pupils; i++ ) {
for ( j = 0; j < tests; j++ ) {
if ( grades[ i ][ j ] > highGrade ) {
highGrade = grades[ i ][ j ];
}
}
}
return highGrade;
}
double average( const int setOfGrades[], int tests )
{
int i;
int total = 0;
for ( i = 0; i < tests; i++ ) {
total += setOfGrades[ i ];
}
return ( double ) total / tests;
}
void printArray( const int grades[][ EXAMS ], int pupils, int tests )
{
int i;
int j;
printf( " [QZ1] [QZ2] [HW1] [HW2] [MT] " );
for ( i = 0; i < pupils; i++ ) {
printf( "\nstudentGrades[%d] ", i );
for ( j = 0; j < tests; j++ ) {
printf( "%-5d", grades[ i ][ j ] );
}
}
}