C++ 如何计算平均值?
我被要求计算10名学生的平均分数。 首先,我能够从data.txt文件中读取和检索数据,如下所示: 编号名称Test1 Test2 Test3 1艾哈迈德58 97 83 2多拉78 76 70 3拉梅什85 75 84 4迈穆纳87 45 74 5罗伯特74 68 97 6库马尔77 73 45 7 Intan 56 23 27 8平74 58 18 9爱达育479895 10罗斯兰799878 然后我要计算每个学生的平均分,并确定分数 以下是我到目前为止所做的C++ 如何计算平均值?,c++,fstream,ifstream,C++,Fstream,Ifstream,我被要求计算10名学生的平均分数。 首先,我能够从data.txt文件中读取和检索数据,如下所示: 编号名称Test1 Test2 Test3 1艾哈迈德58 97 83 2多拉78 76 70 3拉梅什85 75 84 4迈穆纳87 45 74 5罗伯特74 68 97 6库马尔77 73 45 7 Intan 56 23 27 8平74 58 18 9爱达育479895 10罗斯兰799878 然后我要计算每个学生的平均分,并确定分数 以下是我到目前为止所做的 #include <io
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
ifstream inFile1;
string temp;
int line=0;
inFile1.open("data.txt");
if(inFile1.fail())
{
cout << "File cannot be opened" << endl;
exit(1);
}
while(getline(inFile1, temp))
{
line++;
}
inFile1.close();
return 0;
}
该程序应至少包含两个原型函数:平均值和等级。
这就是我被卡住的地方。你可以在这里检查答案: 基本上,当您遍历文件行时,应该将临时字符串拆分为您感兴趣的标记。怎样一个选项是将getline与delimeter“”一起使用,或者查看std::noskipws流操纵器,或者简单地使用operator>>读取文件,具体取决于您的需求细节 如果我正确理解了您的案例,我会使用操作符>>获取学生的姓名,然后使用getlineinFile、gradesText进行阅读,直到行尾获取当前学生的所有分数 然后我将使用一个单独的函数将字符串拆分为一个等级向量。如何进行拆分您可以签入。这样,您就可以准备一个函数,比如vector splitconst string&line,char delim=''。在实现中,您可能应该使用std::stoi进行字符串到int的转换 之后,当您已经有一个合适的集合时,您可以使用以下公式计算平均值:
const double sum = std::accumulate(grades.begin(), grades.end(), 0.0);
const double gradesMean = sum / grades.size();
请不要发布包含代码的图片链接,使用代码示例工具将代码直接复制/粘贴到问题中。