C++ Primer Plus第六版 第三章 程式設計練習答案

AHU_Tree發表於2014-07-01
/*******************************************************************************************************************
Author : Yuuji
Blog : blog.csdn.net/acm_yuuji
Time : 2014/06/30
From : C++ Primer Plus第六版第三章程式設計練習 第1題
Problem : 編寫一個小程式。要求使用者使用一個整數指出自己的身高(單位為英寸),然後將身高轉換為英尺和英寸。該程式使用
下劃線字元來指示輸入位置。另外,使用一個const符號常量來表示轉換因子。
*******************************************************************************************************************/
#include <iostream>
using namespace std;
int main()
{
	cout << "請輸入您的身高(單位英寸):___\b\b\b";
	int h = 0;
	cin >> h;//輸入身高
	const int CHG = 12;//定義轉換因子
	cout << "您的身高是" << h / 12 << "英尺," << h % 12 << "英寸" << endl;
	return 0;
}

/*******************************************************************************************************************
Author : Yuuji
Blog : blog.csdn.net/acm_yuuji
Time : 2014/06/30
From : C++ Primer Plus第六版第三章程式設計練習 第2題
Problem : 編寫一個小程式,要求以幾英尺幾英寸的方式輸入其身高,並以磅為單位輸入其體重。(使用3個變數來儲存這些資訊。)
該程式報告其BMI(Body Mass Index,體重指數)。為了計算BMI,該程式以英寸的方式指出使用者的身高(1英尺為12英寸),並將
以英寸為單位的身高轉換為以米為單位的身高(1英寸=0.0254米)。然後,將以磅為單位的體重轉換為以千克為單位的體重(1千克=
2.2磅)。最後,計算相應的BMI——體重(千克)除以身高(米)的平方。用符號常量表示各種轉換因子。
*******************************************************************************************************************/
#include <iostream>
using namespace std;
int main()
{
	cout << "請輸入您的身高(以英尺 英寸”的方式輸入):";
	int h_ft = 0;//輸入英尺
	int h_in = 0;//輸入英寸
	cin >> h_ft >> h_in;
	cout << "請輸入您的體重(單位:磅):";
	int w = 0;//輸入磅
	cin >> w;
	const int FT_TO_IN = 12;//轉換因子
	const double IN_TO_M = 0.0254;
	const double P_TO_KG = 1 / 2.2;
	cout << "您的BMI是:" << (w * P_TO_KG) / (((h_ft * FT_TO_IN) + h_in) * IN_TO_M) << endl;
	return 0;
}

/*******************************************************************************************************************
Author : Yuuji
Blog : blog.csdn.net/acm_yuuji
Time : 2014/06/30
From : C++ Primer Plus第六版第三章程式設計練習 第3題
Problem : 編寫一個程式,要求使用者以度、分、秒的方式輸入一個緯度,然後以度為單位顯示該緯度。1度為60分,1分等於60秒,
請以符號常量的方式表示這些值。對於每個輸入值,應使用一個獨立的變數儲存它。下面是該程式執行時的情況:
Enter a latitude in degrees , minutes, and seconds:
First , enter the degrees: 37
Next , enter the minutes of arc: 51
Finally, enter the seconds of arc 19;
37 degrees , 51minutes , 19 seconds = 37.8553 degrees
*******************************************************************************************************************/
#include <iostream>
using namespace std;
int main()
{
	cout << "Enter a latitude in degrees , minutes , and seconds:" << endl << "First , enter the degrees: ";
	int degrees = 0;//度
	cin >> degrees;
	cout << "Next , enter the minutes of arc: ";
	int minutes = 0;//分
	cin >> minutes;
	cout << "Finally , enter the seconds of arc: ";
	int seconds = 0;//秒
	cin >> seconds;
	const double SECONDS_TO_MINUTES = double(1) / double(60);//轉換因子 注意這裡要把1和60作為浮點數 否則 1 / 60 = 0
	const double MINUTES_TO_DEGREES = double(1) / double(60);
	cout << degrees << " degrees , " << minutes << " minutes , " << seconds << " seconds = " << (seconds * SECONDS_TO_MINUTES + minutes) * MINUTES_TO_DEGREES + degrees << " degrees" << endl;
	return 0;
}

/*******************************************************************************************************************
Author : Yuuji
Blog : blog.csdn.net/acm_yuuji
Time : 2014/06/30
From : C++ Primer Plus第六版第三章程式設計練習 第4題
Problem : 編寫一個程式,要求使用者以整數方式輸入秒數(使用long或long long變數儲存),然後以天、小時、分鐘和秒的方式
顯示這段時間。使用符號常量來表示每天有多少小時、每小時有多少分鐘一集每分鐘有多少秒。該程式的輸出應與下列類似:
Enter the number of seconds: 31600000
31600000 seconds = 365 days, 17 hours , 46 minutes , 40 seconds
*******************************************************************************************************************/
#include <iostream>
using namespace std;
int main()
{
	cout << "Enter the number of seconds: ";
	long long seconds = 0;//輸入秒
	cin >> seconds;
	const int SECONDS_TO_MINUTES = 60;//轉換因子
	const int MINUTES_TO_HOURS = 60;
	const int HOURS_TO_DAYS = 24;
	cout << seconds << " seconds = " << seconds / SECONDS_TO_MINUTES / MINUTES_TO_HOURS / HOURS_TO_DAYS << " days, " << seconds / SECONDS_TO_MINUTES / MINUTES_TO_HOURS % HOURS_TO_DAYS << " hours, " << seconds / SECONDS_TO_MINUTES %MINUTES_TO_HOURS << " minutes, " << seconds % SECONDS_TO_MINUTES << " seconds." <<endl;
	return 0;
}

/*******************************************************************************************************************
Author : Yuuji
Blog : blog.csdn.net/acm_yuuji
Time : 2014/06/30
From : C++ Primer Plus第六版第三章程式設計練習 第5題
Problem : 編寫一個程式,要求使用者輸入全球當前的人口和美國當前的人口(或其他國家的人口)。將這些資訊儲存在long long變數
中,並讓程式顯示美國(或其他國家)的人口占全球人口的百分比。該程式的輸出應與下面類似:
Enter the world's population: 6898758899
Enter the population of the US: 310783781
The population of the US is 4.50492% of the world population.
*******************************************************************************************************************/
#include <iostream>
using namespace std;
int main()
{
	cout << "Enter the world's population: ";
	long long p_g = 0;//全球當前人口
	cin >> p_g;
	cout << "Enter the population of the US: ";
	long long p_a = 0;//美國當前人口
	cin >> p_a;
	cout << "The population of the US is " << (double)p_a / (double)p_g << "% of the world population." << endl;
	return 0;
}

/*******************************************************************************************************************
Author : Yuuji
Blog : blog.csdn.net/acm_yuuji
Time : 2014/06/30
From : C++ Primer Plus第六版第三章程式設計練習 第6題
Problem : 編寫一個程式,要求使用者輸入驅車裡程(英里)和使用汽油量(加侖),然後指出汽車耗油量為一加侖的里程。如果願意,
也可以讓程式要求使用者以公里為單位輸入距離,並以升為單位輸入汽油量,然後指出歐洲風格的結果——即每100公里的耗油量(升)
*******************************************************************************************************************/
#include <iostream>
using namespace std;
int main()
{
	cout <<"請輸入驅車裡程(英里): ";
	int len = 0;
	cin >> len;
	cout << "請輸入使用汽油量(加侖): ";
	int v = 0;
	cin >> v;
	cout << "汽車耗油量為一加侖的里程: " << (double)len / (double)v << endl;
	cout << "請輸入距離(公里): ";
	cin >> len;
	cout << "請輸入汽油量: ";
	cin >> v;
	cout << "每100公里的耗油量(升): " << (double)v / (double)len * 100 << endl;
	return 0;
}

/*******************************************************************************************************************
Author : Yuuji
Blog : blog.csdn.net/acm_yuuji
Time : 2014/06/30
From : C++ Primer Plus第六版第三章程式設計練習 第7題
Problem : 編寫一個程式,要求使用者按歐洲風格輸入汽車的耗油量(每100公里消耗的汽油量(升)),然後將其轉換為美國風格的
耗油量——每加侖多少英里。注意,除了使用不同的單位計量外,美國方法(距離/燃料)與歐洲方法(燃料/距離)相反。100公里
等於62.14英里,1加侖等於3.875升。因此,19mpg大約合12.41/100km,127mpg大約合8.71/100km。
*******************************************************************************************************************/
#include <iostream>
using namespace std;
int main()
{
	cout << "請輸入歐洲風格的耗油量: ";
	double v = 0;
	cin >> v;
	const double Y_TO_G = 62.14;//英里轉公里
	const double C_TO_V = 3.875;//加侖轉升
	cout << "美國風格耗油量為: " << Y_TO_G * C_TO_V / v << endl;
	return 0;
}


相關文章