该程序应该接受测量输入,然后是单位(例如“10cm”),将其转换为米,然后如果它是最大或最小值,则将其存储。然后,它应该将它添加到在终止前用“|”输入的所有值的总和中。它最终应该输出最大、最小和总和。停!不是家庭作业——只是想自学。
编辑:对缺乏明确性表示歉意-
我现在发现我只需要在测量和单位输入之间添加一个空格。然后我的问题变成了:是否有可能(没有第 4 章新手无法拥有的奢侈知识)接受“10cm”并获得与输入“10 cm”相同的结果?书中具体说:
“为每个双输入添加一个单位;即输入诸如 10cm、2.5in、5ft 或 3.33m 之类的值”
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
double n1 = 0;
string unit = " ";
double largest = 0;
double smallest = 0;
double sum = 0;
double inM = 0;
while(cin >> n1 >> unit)
{
if(unit == "m")
inM = n1;
else if(unit == "cm")
inM = n1 / 100;
else if(unit == "in")
inM = (n1 * 2.54) / 100;
else if(unit == "ft")
inM = ((n1 / 12) * 2.54) / 100;
else
{
cout << "dont understand";
break;
}
if(inM > largest && smallest == 0){
largest = inM;
smallest = inM;
}
else if (inM < smallest)
smallest = inM;
else if (inM > largest)
largest = inM;
sum += inM;
}
cout << "The smallest value you entered was: " << smallest << "\nThe largest value you entered was: " << largest << "\nThe sum of all values was: " << sum;
}