Im wriiting a code for a sentienl controlled while loop that uses g as the endin
ID: 3624850 • Letter: I
Question
Im wriiting a code for a sentienl controlled while loop that uses g as the ending char.My output is suppost to tell the Females gpa's and males gpa's...the input file is like
f 3.4
m 2.3...
then g
So my code was only putting male gpa=0 and female is 3.4...its only reading the 1st vaule and its not reading any of the males output. we can not use any void features...im stuck.
here is my code
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
using namespace std;
int main()
{
int countFemale;
int countMale;
double sumMaleGPA;
double sumFemaleGPA;
double averageMaleGPA;
double averageFemaleGPA;
char x;
const char sentinel= g;
ifstream inFile;
inFile.open("F://gpa.txt");
sumFemaleGPA = 0.0;
sumMaleGPA = 0.0;
averageFemaleGPA = 0.0;
averageMaleGPA = 0.0;
countMale = 0;
countFemale = 0;
char gender;
const char& m = 'm';
const char& f = 'f';
double GPA;
GPA = 0.0;
inFile >> gender >> GPA;
while (inFile);
{
if (gender == 'm')
{
countMale++;
sumMaleGPA = sumMaleGPA + GPA; }
if (gender == 'f')
{
countFemale++;
sumFemaleGPA = sumFemaleGPA + GPA; }
}
if (countMale != 0)
averageMaleGPA = (sumMaleGPA / countMale);
if (countFemale != 0)
averageFemaleGPA = (sumFemaleGPA / countFemale);
cout << " The average male GPA is " << averageMaleGPA << endl;
cout << " The average female GPA is " << averageFemaleGPA<< endl;
inFile.close ();
system("PAUSE");
return 0;
}
any help would be appericated...thanks
Explanation / Answer
// Modified code shown in red colour
// now code perfectly working enjoy.
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
using namespace std;
int main()
{
int countFemale;
int countMale;
double sumMaleGPA;
double sumFemaleGPA;
double averageMaleGPA;
double averageFemaleGPA;
char x;
const char sentinel= 'g';
ifstream inFile;
inFile.open(("F://gpa.txt");
sumFemaleGPA = 0.0;
sumMaleGPA = 0.0;
averageFemaleGPA = 0.0;
averageMaleGPA = 0.0;
countMale = 0;
countFemale = 0;
char gender;
const char& m = 'm';
const char& f = 'f';
double GPA;
GPA = 0.0;
while (!inFile.eof())
{
inFile >> gender >> GPA;
if (gender == 'm')
{
countMale++;
sumMaleGPA = sumMaleGPA + GPA;
}
if (gender == 'f')
{
countFemale++;
sumFemaleGPA = sumFemaleGPA + GPA;
}
if (gender == 'g') // sentinetal break............
break;
}
if (countMale != 0)
averageMaleGPA = (sumMaleGPA / countMale);
if (countFemale != 0)
averageFemaleGPA = (sumFemaleGPA / countFemale);
cout << " The average male GPA is " << averageMaleGPA << endl;
cout << " The average female GPA is " << averageFemaleGPA<< endl;
inFile.close ();
system("PAUSE");
return 0;
}