Deborah R. Fowler

Weighted Grade Average

Posted Jan 8 2015 Updated March 16 2026

Often grades are computed using weighted grading. For example, in my classes the exercise and projects are given different weights toward your final grade.

How is a weighted grade computed?

For example, if a class weighting is given as:
10% for Exercise 1
20% for Exercise 2
30% for Exercise 3
40% for Exercise 4

You have four assignments. These four assignments will be used to compute your grade (out of a total possible 100%).
Recall that percentages really mean "per 100". So if an exercise is worth 10% it is worth 10/100 or .1 of your total grade.

Therefore - your weightings should total 100% (a good error checking test in a computer program would be to check this and have the user re-enter weights if this is incorrect).
To calculate the grade you would take the weighted value of each grade:

Suppose you received grades of 90, 80, 85, and 95 on Exercise 1 to 4. You calculation would be:
weightedAverage = .1 * 90 + .2 * 80 + .3 * 85 + .4 * 95 = 88.5



Looking at it another way, consider when you compute a non-weighted average of grades.

The numbers are added together and divided by the number of exercises. This means each exercise is given an equal weighting. So for example, (90+ 80 +85 + 95) / 4 = 87.5

Really this is simply a weighting with each exercise being worth equal weighting, 100%/4 = 25% or weighted
.25 * 90 + .25 * 80 + .25 * 85 + .25 * 95 = 87.5
or we could have rewritten it as (90 + 80 + 85 + 95) * 1/4
or (90 + 80 + 85 + 95) * .25 and then distributed



In C++, you might have the weighting stored in a vector or array (perhaps eventually as part of a class (as we move into OOP). A simple code snippet may look something like this:

// declare and initalize your sum to zero
float weightedAverage = 0;
for (int i = 0; i < numberOfGrades; ++i)
{
    weightedAverage += weights[i] * grades[i];
}

Here is a simple sample program weightedAverage.cpp