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