没有得到预期的输出
Not getting the expected output
本文关键字:输出 更新时间:2023-10-16
我正在写一份家庭作业,要求用户阅读一个文本文件,其中包含未知数量的ssn和分数。然后程序需要计算最大、最小和平均分数,然后输出带有相关SSN的最大分数以及最小和平均分数。
操作正常,但输出全是"0"
任何帮助解决这个问题是非常感谢的。
代码:#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
string ssn, maxSSN;
int grade = 0, totalGrades = 0, count = 0, maxScore = 0, minScore = 0;
double avgScore = 0;
ifstream inFile;
inFile.open("C:\lab5a.txt");
if(!inFile)
{
cout << "Error opening the requested filenn";
system("pause");
return 101;
}
while (!inFile.eof())
{
if (count == 0)
{
maxScore = grade;
minScore = grade;
}
else
{
if (grade > maxScore)
maxScore = grade;
if (grade < minScore)
minScore = grade;
}
grade += totalGrades;
count++;
}
if (count)
avgScore = totalGrades / count;
cout << "Maximum Score: " << maxScore << " Student SSN:" << maxSSN << "n";
cout << "Minimum Score: " << minScore << "n";
cout << "Average Score: " << avgScore << "n";
// studentFile >> ssn >> grade;
inFile.close();
cout << "nn";
system("pause");
return 0;
}
1。你没有阅读inFile
的任何内容。最有可能的是,您想要读取分数值:
while (!inFile.eof())
{
inFile >> grade;
...
根据@Blastfurnace的反馈,使用inFile.eof()
也是错误的。考虑以下输入文件:
3
5
9
17
,其中每行以lf
结束。然后,循环将读取5行,因为它在之后没有检测到文件的结束(17
已被读取),但将尝试从文件中读取另一个值。当循环结束时,count
将变成5
,这是错误的。
请使用以下条件:
while (inFile >> grade)
{
...
也可以读取ssn,使用如下命令:
while (inFile >> ssn >> grade)
{
...
这确保在执行循环体时从文件中读取ssn
和grade
。
2。totalGrades
的计算中操作数顺序错误:
grade += totalGrades;
必须是
totalGrades += grade;
3。您已经将avgScore
声明为double,但是
avgScore = totalGrades / count;
执行整数运算,因此永远不会得到浮点数结果。您需要将至少一个操作数强制转换为double类型:
avgScore = totalGrades / (double) count;
4。仍然缺少的是SSN
的处理。您需要从文件中读取它和等级,然后在分配maxScore
值的同一位置将其分配给maxSSN
。
您不读取文件,因此不将grade
作为输入
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 集合上的输出迭代器:assign和increment迭代器
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 为什么rk4.do_step不输出C++中的初始条件
- 输出没有重复元素的动态数组(收缩数组)C++
- 如何根据单词在文本中出现的概率输出单词