读取文本文件获得奇怪的值,获得无限的值输出
Getting weird values reading text files, getting infinite values output
程序输出"女生的平均GPA为:-1"。#IND",而不是它实际应该发布的内容。我的。dat文件的格式如下:2.4 f
2.6 f
3.5 m
等。我希望它输出这些值的平均GPA,但是变量"avgfGPA"answers"avgmGPA"的结果是"-1"。#IND"
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
void openFiles(ifstream& inFile, ofstream& outFile)
{
inFile.open("finalin.dat");
outFile.open("finalout.dat");
outFile << fixed << showpoint << setprecision(2);
inFile >> fixed >> showpoint >> setprecision(2);
if (!inFile||!outFile)
{
cout << "Problem opening file.";
}
}
void initialize(int &countFemale,int &countMale,float &sumFemaleGPA,float &sumMaleGPA)
{
countFemale=0;
countMale=0;
sumFemaleGPA=0;
sumMaleGPA=0;
}
void sumGrades(ifstream& inFile, float &sumFemaleGPA, float &sumMaleGPA,int &m,int &f)
{
sumFemaleGPA=0;
sumMaleGPA=0;
if (!inFile)
{
inFile.open("finalin.dat");
}
char sex;
float grade;
while(!inFile.eof())
{
inFile >> sex >> grade;
switch (sex)
{
case 'f': sumFemaleGPA= (sumFemaleGPA + grade);
f++;
break;
case 'm': sumMaleGPA= (sumMaleGPA + grade);
m++;
break;
}
}
void averageGPA(float &avgfGPA, float &avgmGPA, int &m, int &f, float &sumFemaleGPA, float &sumMaleGPA)
{
avgmGPA=0;
avgfGPA=0;
avgfGPA=sumFemaleGPA/f;
avgmGPA=sumMaleGPA/m;
}
void printResults(float &avgfGPA, float &avgmGPA, ofstream& outFile)
{
cout <<"The average GPA of the female students is: "<< avgfGPA << endl;
cout <<"The average GPA of the male students is: "<< avgmGPA;
outFile << "The average GPA of the female students is: "<< avgfGPA << endl;
outFile <<"The average GPA of the male students is: "<< avgmGPA;
}
int main()
{
int countFemale;
int countMale;
float sumFemaleGPA;
float sumMaleGPA;
float avgfGPA;
float avgmGPA;
ifstream inFile;
ofstream outFile;
openFiles(inFile,outFile);
initialize(countFemale,countMale,sumFemaleGPA,sumMaleGPA);
sumGrades(inFile,sumFemaleGPA,sumMaleGPA,countMale,countFemale);
averageGPA(avgfGPA,avgmGPA,countMale,countFemale,sumFemaleGPA,sumMaleGPA);
printResults(avgfGPA,avgmGPA, outFile);
}
你的问题是参考文献,或者缺乏参考文献:
这个代码:void averageGPA(float avgfGPA, float avgmGPA, int m, int f, floatsumFemaleGPA,浮动sumMaleGPA) {avgmGPA=0;
avgfGPA = 0;avgfGPA = sumFemaleGPA/f;avgmGPA = sumMaleGPA/m;}
应该是
…移除溶液(作业)
为了更清楚,c++与Java的不同之处在于,如果您希望在其他地方更改值,则需要通过引用传递值
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 在控制台上输出我从文件中读取的整数,将程序插入无限循环
- 当我在循环内打印变量时无限输出
- 为什么输出会进入无限循环
- 我的c ++数组值不想改变,它输出无限循环
- 为什么当用户输入除整数之外的任何内容时,我的程序会无限循环输出?C++
- 我写了一个函数来删除循环链接列表中的第 1 个节点,但输出显示无限次"55 44 33 22 11 99",那么我该如何解决呢?
- 为什么输出是无限的?
- C++ - 无限输出到控制台
- C++ 无限循环读取文件创建重定向命令输出
- 无限循环heisenbug:如果我添加打印输出,它就会退出
- 为什么我的 while 循环会导致无限输出
- 统计计算器输出无限循环
- 为什么这段代码没有给出任何输出?这似乎是一个无限循环
- 读取文本文件获得奇怪的值,获得无限的值输出
- 无法弄清楚为什么这个输出格式化循环是无限的