c++ Primer Plus 第六版 编程练习答案第三章

3.1

#include<stdafx.h>
#include <iostream>
using namespace std;
const int inch_per_feet = 12;//一英尺(inch)等于12英寸(feet)

int main()

{
	int height,heigh_inch,heigh_feet;
	cout << "enter your height in inch=____\b\b\b\b ";//\b表示退格,与下划线个数相同,用于指示输入位置
	cin >> height;
	heigh_inch = height / inch_per_feet;
	heigh_feet = height % inch_per_feet;
	cout << "your height is " << heigh_inch << " inch " << heigh_feet << " feet\n";
	return 0;
}

3.2

#include<stdafx.h>
#include <iostream>
using namespace std;
const int inch_per_feet = 12;//一英尺(inch)等于12英寸(feet)
const double feet_per_m = 0.0254;//一英寸等于0.0254米,注意由于后面定义的变量为double类型,这里声明也要用double
const double kg_per_pound = 2.2;

int main()

{
	int height_inch, height_feet, weight_pound;//分别表示身高的英尺英寸和体重磅,以整数表示
	double height_m,weight_kg,BMI;//身高米与体重kg以及BMI值都可能为小数,用double类型的变量,注意与前声明类型保持一致
	//身高体重的输入
	cout << "enter your heigh in inch:___\b\b";
	cin >> height_inch;
	cout << "enter your heigh in feet:___\b\b";
	cin >> height_feet;
	cout << "enter your weight in pound:___\b\b";
	cin >> weight_pound;
	//身高米、体重kg单位的转换
	height_m = (height_inch*inch_per_feet + height_inch)*feet_per_m;
	weight_kg = kg_per_pound * weight_pound;
	//BMI值计算
	BMI = weight_kg / (height_m*height_m);//注意这里的平方不能用^2表示
	cout << "your BMI is " << BMI << endl;
	return 0;
}

3.3

#include<stdafx.h>
#include <iostream>
using namespace std;
const int degree_per_minutes = 60;
const int degree_per_second = 60*60;


int main()

{
	double degree, minute, second;
	double latitude;
	cout << "enter a latitude in dgree,minutes,and seconds:\n";
	cout << "First,enter the degrees: ";
	cin >> degree;
	cout << "Next,enter the minutes of arc: ";
	cin >> minute;
	cout << "Finally,enter the second of arc: ";
	cin >> second;
	latitude = degree + minute / degree_per_minutes + second / degree_per_second;//转换因子与变量至少要有一个为浮点型,否则这个计算结果将会舍去小数部分,导致计算不正确
	cout << degree << "degrees, " << minute << " minutes," << second << " seconds= " << latitude << " degree\n";
	return 0;
}

3.4

#include<stdafx.h>
#include <iostream>
using namespace std;
const int day_per_hour = 12;
const int hour_per_minute = 60;
const int minute_per_second = 60;


int main()

{
	long second_origi;//用于输入秒数
	int day,se_or_d,hour,se_or_h, minute, second;//均定义为int,用于舍去小数
	cout << "enter the number of seconds: ";
	cin >> second_origi;
	day = second_origi / (minute_per_second*hour_per_minute*day_per_hour);
	se_or_d = second_origi - day * (minute_per_second*hour_per_minute*day_per_hour);//存放原始秒数减去天所占秒数的值,方便计算小时
	hour= se_or_d / (minute_per_second*hour_per_minute);
	se_or_h = se_or_d - hour * hour_per_minute*minute_per_second;//存放剩余秒数
	minute = se_or_h / minute_per_second;
	second = se_or_h - minute * minute_per_second;
	cout << second_origi << " seconds is " << day << "days, "<<hour<<" hours, "<<minute<<" minutes, "<<second<<" seconds\n";
	return 0;
}

3.5

#include<stdafx.h>
#include <iostream>
using namespace std;
int main()

{
	long long A_p, W_p;
	double rate;
	cout << "enter the world's population: ";
	cin >> W_p;
	cout << "enter the population of the US: ";
	cin >> A_p;
	rate = double (A_p) / W_p * 100;//由于用long long 存储的变量,必须至少将两个变量中的一个转化为浮点型数据,否则求出的比率为0,舍去小数
	cout << "The population of the US is " << rate << "% of the world population";
	return 0;
}

3.6

#include<stdafx.h>
#include <iostream>
using namespace std;
int main()

{
	double distance, A_g, oil_con;//汽油量可能为小数,变量定义为double类型
	cout << "enter the distance in kilometer: ";
	cin >> distance;
	cout <<"enter the amount of gasoline in litre: ";
	cin >> A_g;
	oil_con = A_g/ distance * 100;
	cout << "the oil consumption per 100 kilometers is " << oil_con;
	return 0;
}

3.7

#include<stdafx.h>
#include <iostream>
using namespace std;
const double kilo_100_mile = 62.14;
const double gallon_per_L = 3.875;
int main()

{
	double con_in_Eur,con_in_US;
	cout << "enter the oil consumption in Europe method/100km: ";
	cin >> con_in_Eur;
	con_in_US =kilo_100_mile/con_in_Eur*gallon_per_L;//直接将欧洲风格的耗油量转换为美国风格的
	cout << "the oil consumption in America style is " << con_in_US << "mpg";
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值