我在尝试解决某些问题。
如果我有一串带有空格的数字,例如“ 10 20 30 40”,我有什么办法可以将这些数字加起来并取平均值?
我尝试了下面的代码,但是返回了“ nan”,所以我真的不知道我在做什么错。
for (int i = 0; i < numLength; i++)
{
num = grades.at(i) - '0';
total += num;
countNum++;
}
cout << firstName << " " << lastName << " average: " << (total/countNum) << endl;
答案 0 :(得分:6)
您可以简单地使用std::istringstream来代替手动解析数据:
#include <string>
#include <sstream>
#include <iostream>
int main()
{
std::string test = "10 20 30 40";
int count = 0;
double total = 0.0;
std::istringstream strm(test);
int num;
while ( strm >> num )
{
++count;
total += num;
}
std::cout << "The average is " << total / count;
}
输出:
The average is 25
答案 1 :(得分:0)
使用std::istringstream
解析字符串,例如:
#include <iostream>
#include <string>
#include <sstream>
...
std::istringstream iss(grades);
while (iss >> num) {
total += num;
++countNum;
}
std::cout << firstName << " " << lastName << " average: " << (total/countNum) << std::endl;