当前位置:C++技术网 > 精选软件 > C++ Primer Plus 6th 2.7 编程练习题 第6题 天文单位的转换

C++ Primer Plus 6th 2.7 编程练习题 第6题 天文单位的转换

更新时间:2019-02-15 11:26:11浏览次数:1+次

C++ Primer Plus编程练习题2.7第六题  天文单位的转换


题目:
6.编写一个程序,其main()调用一个用户定义的函数(以光年值为参数,并返回对应天文单位的值)。该程序按下面的格式要求用户输入光年值,并显示结果:
Enter the number of light years: 4.2
4.2 light years = 265608 astronomical units.
天文单位是从地球到太阳的平均距离(约150000000公里或93000000英里),光年是光一年走的距离(约10万亿公里或6万亿英里)(除太阳外,最近的恒星大约离地球4.2光年)。请使用double类型(参见程序清单2.4),转换公式为:
1光年 = 63240天文单位

答案:书上无答案。

C++技术网辅导详解解答:
    此题和上一题几乎是一样的,只是整出来一个天文方面的应用,看起来不一样而已。实则都是单位换算的问题。我们确定转换公式即可。然后这里要求我们用double类型,其实和float差不多的。
    从本题我们可以看到,虽然题目看起来内容很多,感觉很复杂的样子,但是只要我们把握到本质后,其实就很简单了。在实际开发的时候也是如此,很多需求看似好复杂哦,仔细分析后,其实很简单。千万别被表面的东西吓到了。
    换句话说,这其实也是一种建模能力,从众多乱七八糟的描述中提取出来一个本质的东西。
    而且此题是想让大家练习一下double类型的使用。
    下面是完整的代码:

#include <iostream>
using namespace std;

double lytoau(double ly)
{
    return ly * 63240;
}

int main()
{
    double ly;
    cout << "Enter the number of light years: ";
    cin >> ly;
    double au = lytoau(ly);
    cout << ly <<" light years = "<<au<<" astronomical units. "<<endl;
    return 0;
}

    仔细比较本题的代码和上一题的代码,几乎是一样的,除了重新命名了合适的变量名字和提示以及输出,结构都没有变哦。