/* program to read data into a two-dimensional array */ #include #include #include //needed to use exit() function using namespace std; const int MAXSIZE = 50; const int NUMEXAMS = 4; //function prototypes void findstudentavg(int grade[][NUMEXAMS], int class_size); void findexamavg(int grade[][NUMEXAMS], int class_size); int main() { int grade[MAXSIZE][NUMEXAMS]; int class_size; //un-comment to redirect cin to a file //ifstream cin("c:\\bc\\CISC1110\\pgms\\chapter7\\myinput2.txt"); cout << "How many students in the class? "; cin >> class_size; cout << endl << "There are " << class_size << " students in the class" << endl; // read in and print the exam grades for each student cout << endl; for (int stnum = 0; stnum < class_size; stnum++) { cout << "Type in four grades for student " << stnum << endl; for (int exam = 0; exam < NUMEXAMS; exam++) cin >> grade[stnum][exam]; cout << "The grades for student " << stnum << " were:"; for (int exam = 0; exam < NUMEXAMS; exam++) cout << " " << grade[stnum][exam]; cout << endl; } //find the student averages cout << endl; findstudentavg(grade,class_size); //find the exam averages cout << endl; findexamavg(grade,class_size); // system("pause"); //un-comment when using DevC++ return 0; } /* Function findstudentavg() * Input: * grade - a 2-dimensional array of grades * NUMEXAMS - numbers of exams for each student * class_size - number of students in the class * Process: * finds each student's average * Output: * prints each student's average */ void findstudentavg(int grade[][NUMEXAMS], int class_size) { int sum; double avg; for (int stnum = 0; stnum < class_size; stnum++) { sum = 0; for (int exam = 0; exam < NUMEXAMS; exam++) sum += grade[stnum][exam]; avg = (double)sum/NUMEXAMS; cout<< "Student " << stnum << " had an average of " << avg << endl; } return; } /* Function findexamavg() * Input: * grade - a 2-dimensional array of grades * NUMEXAMS - numbers of exams for each student * class_size - number of students in the class * Process: * finds the class average on each exam * Output: * prints the class average on each exam */ void findexamavg(int grade[][NUMEXAMS], int class_size) { int sum; double avg; for (int exam = 0; exam < NUMEXAMS; exam++) { sum = 0; for (int stnum = 0; stnum < class_size; stnum++) sum += grade[stnum][exam]; avg = (double)sum/class_size; cout << "Exam " << exam << " had a class average of " << avg << endl; } return; }