C++ Primer Plus章节编程练习第三章
1
题目
编写一个小程序,要求用户使用一个整数指出自己的身高(单位为英寸),然后将身高转换为英尺和英寸。该程序使用下划线字符来指示输入位置。另外,使用个const符号常量来表示转换因子。
题解
#include<iostream>
int main(){
using namespace std;
const int k_conversion_flag=12;
int input;
cout<<"Please enter your height in inches:______\b\b\b\b\b\b";
cin>>input;
cout<<"Your height: "<<input/k_conversion_flag
<<" feet, "<<input%k_conversion_flag<<" inches.\n";
return 0;
}
2
题目
编写一个小程序,要求以几英尺几英寸的方式输入其身高,并以磅为单位输入其体重。(使用3个变量来存储这些信息。)该程序报告其BMI ( Body Mass Index,体重指数)。为了计算BMI,该程序以英寸的方式指出用户的身高(1英尺为12英寸),并将以英寸为单位的身高转换为以米为单位的身高(1英寸=0.0254米)。然后,将以磅为单位的体重转换为以千克为单位的体重(1千克=2.2磅)。最后,计算相应的BMI---体重-(千克)除以身高(米)的平方。用符号常量表示各种转换因子。
题解
#include<iostream>
int main(){
using namespace std;
//定义单位转换的常量
const int kfeet2inches=12;
const double kinches2meter=0.0254;
const double kkg2pounds=2.2;
int feet_num,inches_num,pounds_num;
//获取输入
double height,weight;
cout<<"Please enter your height (exp:10 feet, 2 inches): ";
scanf("%d feet, %d inches",&feet_num,&inches_num);
cout<<"Please enter your weight (exp:110 pounds): ";
scanf("%d pounds",£s_num);
//计算身高和体重
height=(feet_num*kfeet2inches+inches_num)*kinches2meter;
weight=pounds_num/kkg2pounds;
cout<<"You BMI = "<<height/(weight*weight)<<endl;
return 0;
}
//测试样例
// Please enter your height (exp:10 feet, 2 inches): 15 feet, 5 inches
// Please enter your weight (exp:110 pounds): 150 pounds
// You BMI = 0.00101081
3
题目
编写一个程序,要求用户以度、分、秒的方式输入一个纬度,然后以度为单位显示该纬度。1度为60分,1分等于60秒,请以符号常量的方式表示这些值。对于每个输入值,应使用一个独立的变量存储它。
下面是该程序运行时的情况:
Enter a latitude in degrees, minutes, and seconds:
First, enter the degree: 37
Next, enter the minutes of arc: 51
Finally enter the seconds of arc: 19
37 degrees, 51 minutes, 19 seconds = 37.8553 degrees
题解
#include<iostream>
int main(){
using namespace std;
const int kflag=60;
int degree,minutes,seconds;
double output;
cout<<"Enter a latitude in degree, minutes, and seconds:\n"; //获取数据
cout<<"First, enter the degree: ";cin>>degree;
cout<<"Next, enter the minutes of arc: ";cin>>minutes;
cout<<"Finally, enter the seconds of arc: ";cin>>seconds;
output=1.0*degree+1.0*minutes/kflag+1.0*seconds/(kflag*kflag); //转化为角度并输出
cout<<degree<<" degrees, "<<minutes<<" minutes, "<<seconds<<" seconds = "<<output<<" degrees\n";
return 0;
}
//题目样例
// Enter a latitude in degree, minutes, and seconds:
// First, enter the degree: 37
// Next, enter the minutes of arc: 51
// Finally, enter the seconds of arc: 19
// 37 degrees, 51 minutes, 19 seconds = 37.8553 degrees
4
题目
编写一个程序,要求用户以整数方式输入秒数(使用long或long long 变量存储),然后以天、小时、分钟和秒的方式显示这段时间。使用符号常量来表示每天有多少小时、每小时有多少分钟以及每分钟有多少秒。该程序的输出应与下面类似:
Enter the number of seconds: 31600000
31600000 seconds = 365 days,17 hours, 46 minutes, 40 seconds
题解
#include<iostream>
int main(){
using namespace std;
const int khour=24;
const int kminutes=60;
const int kseconds=60;
int day,hour,minute,second;
long long input,temp;
cout<<"Enter the number of seconds: ";
cin>>input;
temp=input;
second=input%kseconds; input/=kseconds;
minute=input%kminutes; input/=kminutes;
hour=input%khour;
day=input/=khour;
cout<<temp<<" seconds = "<<day<<" days, "<<hour<<" hours, "
<<minute<<" minutes, "<<second<<" seconds\n";
return 0;
}
//题目样例
// Enter the number of seconds: 31600000
// 31600000 seconds = 365 days, 17 hours, 46 minutes, 40 seconds
5
题目
编写一个程序,要求用户输入全球当前的人口和美国当前的人口( 或其他国家的人口)。将这些信息存储在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>
int main(){
using namespace std;
typedef long long ll;
ll word_population,us_population;
cout<<"Enter the world's population: ";
cin>>word_population;
cout<<"Enter the population of the US: ";
cin>>us_population;
cout<<"The population of the US is "<<100*(1.0*us_population/word_population)
<<"\% of the world population.\n";
return 0;
}
//题目样例
// 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.
6
题目
编写一个程序,要求用户输入驱车里程(英里)和使用汽油量(加仑),然后指出汽车耗油量为--加仑的里程。如果愿意,也可以让程序要求用户以公里为单位输入距离,并以拜为单位输入汽油量,然后指出欧洲风格的结果---即每100公里的耗油量(升)。
题解
#include<iostream>
int main(){
using namespace std;
int miles,gallons;
cout<<"Please enter vehicle mileage in miles: ";
cin>>miles;
cout<<"Please enter the vehicle fuel consumption: ";
cin>>gallons;
cout<<"Fuel consumption per mile of your car is "<<gallons*1.0/miles<<endl;
return 0;
}
7
题目
编写一个程序,要求用户按欧洲风格输入汽车的耗油量(每100公里消耗的汽油量(升)),然后将其转换为美国风格的耗油量---每加仑多少英里。注意,除了使用不同的单位计量外,美国方法(距离/燃料)与欧洲方法(燃料/距离)相反。100公里等于62.14英里,1加仑等于3.875升。因此,19mpg大约合12.4/100km,l27mpg 大约合8.71/100km。
题解
#include<iostream>
int main(){
using namespace std;
//定义常量
const double gallon2l=3.875;
const double hundrandkm2miles=62.14;
double lprekm,mpg;
cout<<"Please enter fuel consumption of your car in L/100km: ";
cin>>lprekm;
//表示方法的转化
mpg=hundrandkm2miles/(lprekm/gallon2l);
cout<<"Fuel consumption of your car in US-style is: "<<mpg<<"mpg\n";
return 0;
}
Comments | NOTHING