How do I access another functions specific variables in another function?
void gradesInput() {
int s1, s2, s3;
cout << "Please enter your test scores, in order from the first to last.\n";
cin >> s1 >> s2 >> s3;
if (s1 < 0 || s1 > 100) {
cout << "Your first test score is not a valid number, please re-enter: ";
cin >> s1;
}
else if (s2 < 0 || s2 > 100) {
cout << "Your second test score is not a valid number, please re-enter: ";
cin >> s2;
}
else if (s3 < 0 || s3 > 100) {
cout << "Your third test score is not a valid number, please re-enter: ";
cin >> s3;
}
}
double average3Scores(int s1, int s2, int s3) {
gradesInput();
double avg = (int)(((s1 + s2 + s3) / 3.0) + 0.5); //rounded average
return avg;
}
In Average3Scores, I dont want to have to manually input s1, s2 ,s3 in the parameters, if you know what I mean? I know this has something to do with pointers, is that correct?
I've edited my program to use reference variables, can you tell me if I am using it correctly?
#include <iostream>
using namespace std;
void gradesInput(int &test1, int &test2, int &test3) {
cout << "You will be prompted to enter your three test scores" << endl;
cout << "Please make sure your number is between 0 and 100." << endl;
cout << "Please enter your first test score: ";
cin >> test1;
cout << "\nPlease enter your second test score: ";
cin >> test2;
cout << "\nPlease enter your third test score: ";
cin >> test3;
}
double average3Scores(int test1, int test2, int test3) {
double avg1 = ((test1 + test2 + test3) / 3.0); // calculating the average without rounding
avg1 = (int)(avg1 + 0.5); //this rounds the test average
return avg1;
}
double average2Scores(int test2, int test3) {
double avg2 = ((test2 + test3) / 2.0);
avg2 = (int)(avg2 + 0.5);
return avg2;
}
char toLetterGrade(double avg1, double avg2, int test3) {
if (avg1 >= 90)
return 'A';
else if (avg1 >= 70)
if (test3 >= 90)
return 'A';
else
return 'B';
else if (avg1 >= 50)
if (avg2 >= 70)
return 'C';
else
return 'D';
else
return 'F';
}
void displayGrade(double avg, char lGrade) {
cout << "Your average is: " << avg << endl;
cout << "Your grade is: " << lGrade << endl;
}
int main() {
int test1, test2, test3;
double avg1, avg2;
char lGrade;
gradesInput(test1, test2, test3);
average3Scores(test1, test2, test3);
average2Scores(test2, test3);
toLetterGrade(avg1, avg2, test3);
displayGrade(avg1, lGrade);
system("pause");
return 0;
}