#include %26lt;iostream%26gt;
#include %26lt;fstream%26gt;
#include %26lt;cassert%26gt;
using namespace std;
int main()
{
int femcount=0, malcount=0;
double femgpa=0, malgpa=0, malsum, femsum, gpa;
char gender, m, f;
ifstream infile;
infile.open("gpa.txt");
assert(infile);
infile %26gt;%26gt; gender;
while (infile)
{
if (gender == f)
{
femsum = femsum + gpa;
femcount++;
}
else
{
malsum = malsum + gpa;
malcount++;
}
infile %26gt;%26gt; gender %26gt;%26gt; gpa;
}
femgpa = femsum / femcount;
malgpa = malgpa / malcount;
cout %26lt;%26lt; "The average female GPA is " %26lt;%26lt; femgpa %26lt;%26lt; endl;
cout %26lt;%26lt; "The average male GPA is " %26lt;%26lt; malgpa %26lt;%26lt; endl;
return 0;
}
C++ Question--Why does this display the femgpa as -int and the malgpa as 0?
I think there is a typed letter 'f' or 'm' in the text file, yes?
So I think you mean to test variable gender for the letter f or m.
I suggest you:
1. delete variables f and m, like so:
char gender;
2. then test for 'f' (female) in your code like so:
if (gender == 'f' || gender == 'F' ) //allow upper / lower case
{
....
pear
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment