【发布时间】:2018-10-15 08:46:13
【问题描述】:
此代码的格式和输出与我的作业的示例输出相匹配,但问题是我返回 8,而我希望它是 8.0。
我该怎么办?
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <iomanip>
using namespace std;
void runningSum(istream &in, ostream &out)
{
string line, str;
double sum = 0, max = 0;
while (getline(in, line))
{
istringstream sin(line);
out << "running sum = ";
while (sin >> str)
{
sum = sum + stod(str);
out << sum << " ";
if(max < sum) max = sum;
}
out << "\nmax sum = " << max << endl;
}
}
int main()
{
ifstream in("in.txt");
runningSum(in, cout);
return 0;
}
// in.txt: 3.25 4.5 -8.25 7.25 3.5 4.25 -6.5 5.25
// my output:
// running sum = 3.25 7.75 -0.5 6.75 10.25 14.5 8 13.25
// max sum = 14.5
// desired output:
// running sum = 3.25 7.75 -0.5 6.75 10.25 14.5 8.0 13.25
// max sum = 14.5
【问题讨论】:
-
请将预期结果和实际结果作为文本而不是图像插入!
-
对不起,我是新来的。如果可以的话,我刚才在我的 main 函数下的 cmets 中添加了它们。
-
为什么要显示为8.0?这是您作业中的要求吗?
-
有
-0.50和8.00等会被扣分吗? -
很抱歉让您失望,但如果要求将样本输出字符与字符匹配,那么您的教育工作者就是无能的白痴。现在我们已经排除了这个令人不快的事实,匹配示例输出的最简单方法是检查您输出的每个数字,如果它足够接近整数,则在数字之后输出
.0作为文本。