0

该程序应该接受测量输入,然后是单位(例如“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; 
}
4

0 回答 0