I was getting confused by the question and I think you were too.
I am pretty sure you are taking in an integer and passing that into a function that is going to return true or false.
If that returns false then ask for another input and repeat.
If it is true then take that number and pass it into a function that returns a double (number with a decimal) based on the range of values that falls between.
I do not think this program requires you to input a letter grade and instead it is just the numerical grade (which makes it simpler and cleaner).
This is what you should have and then you need to write out what the two functions do.
#include <iostream>
using namespace std;
bool validGrade( int ); //prototypes are always outside of main()
double convertGrade( int );
int main()
{
int grade = 0;
cout << "Input the students grade (0-100): ";
cin >> grade;
if( validGrade(grade) ) //check if the grade is valid
cout << convertGrade(grade) << endl; //output the GPA
return 0;
}
bool validGrade( int in )
{
if( /* check the input against the range needed */ )
return true; //if it meets the condition above
return false;
}
double convertGrade( int in )
{
if( /* */ ) //if it is greater than the highest mark
return /* GPA value */; //return value of highest mark
else if( /* */ ) //if it …