C ++初学者练习

时间:2015-06-11 15:36:55

标签: c++11

我正在写一本书,其中一项任务就是编写一个执行此操作的程序:

提示用户输入值。 存储最高和最低值。 显示最高和最低值。 全部使用while循环。

所以我写了这个:

#include <iostream>

double length;
double length_highest=0;
double length_lowest=0;

int main()
{
    std::cout << "Please enter a length.\n";

    while(std::cin>>length){

        if (length_lowest+length_highest==0){
            length_lowest = length;
            length_highest = length;
        }else if (length<length_lowest){
            length_lowest = length;
        }else if(length>length_highest){
            length_highest = length;
        }

        std::cout << "The highest length is " << length_highest << ".\n";
        std::cout << "The lowest length is " << length_lowest << ".\n";

    }

}

然后,本书要求我修改程序,以便它也接受长度为cm,m,ft和AND的单位,以考虑转换因子。因此,如果用户输入10厘米,然后输入1英寸,则程序必须知道10厘米> 1英寸。 1英尺。程序必须存储它并使用与其对应的正确单元显示它。

我在过去3天左右一直试图写这个,而且我的所有方法都失败了,所以我想继续阅读这本书。

任何建议都有帮助。

1 个答案:

答案 0 :(得分:1)

由于这是一个练习,我不会直接回答代码解决方案。

首先,因为您需要知道哪个数字与哪个单位一致。您必须存储每个数字。

您可以将所有数字存储在包含2个元素,数字和单位的数组中。为此,只需解析输入。

然后,因为你必须在你的数组中检索你的元素。不应将长度存储为maxLength,而应将索引存储在数组中作为maxIndex存储。

然后一切都很简单,你知道如何从cm转换为英寸(基本数学),你知道如何用它们的单位检索最大长度和最小长度。

另一条帮助你的建议就是你应该发挥作用。简单而小巧的功能。 你可以做的功能的想法:

  • InchToCm(长度)
  • CmToInch(长度)
  • isGreaterThan([长度,单位],[长度,单位]
  • 有创意:D

还有其他方法可以做到这一点,它只是一个