3.7编程练习
第一题
编写一个小程序,要求用户使用一个整数指出自己的身高(单位为英寸),然后将身高转换为英寸和英尺.该程序使用下划线字符来指示输入位置.另外,使用一个const符号常量来表示转换因子.
#include"iostream"
using namespace std;
int main() //39.37
{
cout << "Your height(in):______\b\b\b\b\b\b"; //退格转义符 使光标前移
int In; cin >> In;
const int Ft_per_In = 12; // 1 ft = 12 in
int in = In % 12;
int ft = In / 12;
cout << "feet: " << ft << endl << "inches: " << in << endl;
return 0;
}
第二题
编写一个小程序,要求以几英尺几英寸的方式输入其身高,并以磅为单位输入其体重.(使用3个变量来存储这些信息.)
该程序报告其BMI(Body Mass Index,体重指数).为了计算BMI,该程序以英寸的方式指出用户的身高(1英尺为12英寸),并将以英寸为单位的身高转换为以米为单位的身高(1英寸 = 0.0254米).然后,将以磅为单位的体重转换为以千克为单位的体重(1千克 = 2.2磅)
最后,计算相应的BMI---体重(千克)除以身高(米)的平方.用符号常量表示各种转换因子.
#include"iostream"
using namespace std;
int main(void)
{
cout << "Your height(feet and inches)\n";
cout << "feet: "; int feet; cin >> feet;
cout << "inches: "; int inches; cin >> inches;
cout << "Your weight(pounds): ";float pounds; cin >> pounds;
const int Ft_per_In = 12;
const float In_per_M = 0.0254;
const float Kg_per_Pound = 2.2;
inches = (feet * Ft_per_In) + inches;
cout << "\nYour height is " << inches << " feet.\n";
float meter = inches * In_per_M; cout << "meter: " << meter << endl;
float kg = pounds / Kg_per_Pound; cout << "kg: " << kg << endl;
float BMI = kg / (meter*meter);
cout << "Your BMI is " << BMI << ".\n";
return 0;
}
第三题
编写一个程序,要求用户以度,分,秒的方式输入一个纬度,然后以度为单位显示该维度.
1度为60分,1分等于60秒,请以符号常量的方式表示这些值.
对于每个输入值,应使用一个独立的变量存储它,下面是该程序运行的情况:
Enter a latitude,minutes,and seconds:
First,enter the degrees: 37
Next,enter the minutes of arc: 51
Finally,enter the seconds of arc: 19
37 degrees, 51 minutes, 19 seconds = 31.8553 degrees
#include"iostream"
using namespace std;
int main(void){
float Degrees;
float degrees,minutes,seconds;
const int Deg_per_Min = 60;
const int Min_per_Sec = 60;
cout << "Enter a latitude,minutes,and seconds: \n";
cout << "First,enter the degrees: "; cin >> degrees;
cout << "Next,enter the minutes of arc: "; cin >> minutes;
cout << "Finally,enter the seconds of arc: "; cin >> seconds;
minutes = minutes + seconds / Min_per_Sec;
Degrees = degrees + minutes / Deg_per_Min;
cout << degrees << " degrees, " << int (minutes) << " minutes, "
<< seconds << " seconds = " << Degrees << " degrees.";
return 0;
}
第四题
编写一个程序,要求用户以整数方式输入秒数(使用long或long long变量存储),然后以天,小时,分钟和秒的方式显示这段时间.使用符号常量来表示每天有多少小时,每小时有多少分钟以及每分钟有多少秒.该程序的输出应与下面类似:
Enter the number of seconds: 31600000
31600000 seconds = 365days, 17hour, 46minutes, 40seconds
#include"iostream"
using namespace std;
int main(){
const int day_hour = 24;
const int hour_min = 60;
const int min_second = 60;
long long S; //输入的总秒数
cout << "Enter the number of seconds: ";
cin >> S;
int day = S / min_second / hour_min / day_hour;
int hour = S / min_second / hour_min % day_hour;
int minute = S / min_second % min_second;
int second = S % min_second;
cout << S << " seconds = " << day << " days, "
<< hour << " hours, " << minute << " minutes,"
<< second << " seconds" << endl;
return 0;
}
第五题
编写一个程序,要求用户输入全球当前人口和美国当前的人口(或其他国家的人口).将这些信息存储在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(void){
long long World_p;//6898758899
long long US_p;//310783781
cout << "Enter the world 's population: ";cin >> World_p;
cout << "Enter the population of the CHN: ";cin >> US_p;
double per = (double)US_p / (double)World_p;
per = per*100;
cout << "The poplution of the CHN is " << per << "% of the World popluation" << endl;
return 0;
}
第六题
编写一个程序,要求用户输入驱车里程(英里)和使用汽车量(加仑),然后指出汽车耗油量为一加仑的里程.如果愿意,也可以让程序要求用户以公里为单位输入距离,并以升为单位输入汽油量,然后指出欧洲风格的结果---即每100公里的耗油量(升).
#include"iostream"
using namespace std;
int main(void){
long long mile;
int gal;
cout << "Driving mileage: "; cin >> mile;
cout << "Amout of gasoline used: "; cin >> gal;
float g_m = (float)mile / (float)gal;
cout << "Mileage per gallon: " << g_m << endl;;
system("pause");
// 一下是计算每100公里的耗油量(升)
long long K;
int L;
cout << "Driving kilometers: "; cin >> K;
cout << "Amout of gasoline used(litre): "; cin >> L;
float K100_L = ((float)L/(float)K) * 100;
cout << "The fuel consumption per 100 kilometers is " << K100_L << " liter.\n";
return 0;
}
第七题
编写一个程序,要求用户按欧洲风格输入汽车的耗油量(每100公里消耗的汽油量(升)),然后将其转换为美国风格的耗油量---每加仑多少公里.注意,除了使用不同的单位计量外,美国方法(距离/燃料)与欧洲方法(燃料/距离)相反.
100公里等于62.14英里,1加仑等于3.785升.因此,19mpg大约合12.41/100km,27mpg大约合8.71/100km.
#include"iostream"
using namespace std;
int main(void){
cout << "Please enter kilometers: "; float kilometers; cin >> kilometers;
cout << "Please enter fuel consumption(liter): "; float liter; cin >> liter;
float liter_per_100kilometers = liter / (kilometers / 100);
cout << endl << liter_per_100kilometers << " liter per 100 kilometers.\n";
//转换
const float mile_per_100kilometers = 62.14;
float mile;
mile = (kilometers / 100) * mile_per_100kilometers;
const float liter_per_gllon = 3.785;
float gllon;
gllon = liter / liter_per_gllon;
float mpg = mile / gllon;
cout << mpg << " miles per gllon"<< endl << endl;
cout << liter << "/" << kilometers << "km = " << mpg << "mpg\n";
return 0;
}