Calculating GPA: Find the Average

  • Thread starter Thread starter magnifik
  • Start date Start date
  • Tags Tags
    Average Gpa
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 2K views
magnifik
Messages
350
Reaction score
0
i know this is a super easy program, but for some reason it's not working the way i want it to

Code:
// prompt user to enter several GPA's then find the average
// while the user's input is not the sentinel value, -1, add it to the sum
#include <iostream>

using namespace std;

int main(){
	double GPA = 0;
	double sum = 0;
	double count = 0;
	double average = sum / count;

	while (GPA != -1){
		cin >> GPA;
		sum += GPA;
		if (GPA != 1){
			count++;
		}
	}
	cout << average;
	return 0;
}
 
Physics news on Phys.org
For programs like this, its easy to create output statements for the value of variables as the math progresses. You can then imput simple numbers that you can calculate the program output value for on paper and compare them to the answer the program gives, then work backwards to find the error.

Where in your program does the 'average' variable get changed from its initialisation value of 'sum / count' to ... anything else ... before it is output ?
 
First off, you are doing your average calculation before any input is given. In the declarations, put only "double average;" and after your while loop terminates, put "average = sum/count;"

Second, count should go up if GPA != -1, not if GPA != 1

third, (though this isn't ruining your program), I would make count an integer since it only ever accepts integer values. During the average calculation, the double divided by an integer will automatically convert the integer to a double to do double division and store that double in average.