码迷,mamicode.com
首页 > 编程语言 > 详细

[C++ Primer Plus] 第3章、处理数据——课后习题

时间:2020-02-04 14:21:10      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:nbsp   程序   百分比   输入   prim   std   ima   ++   ongl   

1 . 编写一个小程序,要求用户使用一个整数输出自己的身高(单位为厘米),然后将身高转换为米和厘米。该程序使用下划线字符来指示输入位置。另外,使用一个 const 符号常量来表示转换因子。

 1 #include<iostream>
 2 using namespace std; 
 3 
 4 int main()
 5 {
 6     const int n = 100;    //转换因子
 7     int high;
 8     cout << "Enter your height(cm):_____\b\b\b\b";
 9     cin >> high;
10     cout <<"Your height is: "<< high / n << "m";
11     cout << high%n << "cm"<<endl;
12     while (1);
13     return 0;
14 }

 技术图片

 技术图片

 注意:使用下划线来指示输入位置主要利用转义字符\b,\b的含义是,将光标从当前位置向前(左)移动一个字符(遇到\n或\r则停止移动),并从此位置开始输出后面的字符(空字符\0和换行符\n除外)。

2.编写一个小程序,要求以几英尺几英寸的方式输入其身高,并以磅为单位输入其体重。(使用三个变量来存储这些信息。)该程序报告其BMI(Body Mass Index,体重指数)。为了计算BMI,该程序以英寸的方式指出用户的身高(1英尺为12英寸),并将以英寸为单位的身高转换为以米为单位的身高(1英寸=0.0254米)。然后,将以磅为单位的体重转换为以千克为单位的体重(1千克=2.2磅)。最后,计算相应的BMI——体重(千克)除以身高(米)的平方。用符号常量表示这种转换因子。

 1 #include<iostream>
 2 using namespace std; 
 3 
 4 int main()
 5 {
 6     const int FootTOInch = 12;              //1英尺等于12英寸
 7     const double InchToMeter = 0.0254;      //1英寸等于0.0254米
 8     const double KgToPound = 2.2;          //1千克等于2.2磅
 9     int f, i;
10     double height, weight, bmi;
11     cout << "Enter height in feet(英尺) and inches(英寸): "<<endl;
12     cout << "Enter feet part: ";
13     cin >> f;
14     cout << "Enter inches part: ";
15     cin >> i;
16     cout << "Enter weight in pounds: ";
17     cin >> weight;
18     height = (f*FootTOInch + i)*InchToMeter;
19     weight = weight / KgToPound;
20     bmi = weight / (height*height);
21     cout << "Your height is " << height << "m" << endl;
22     cout << "Your weight is " << weight << "kg" << endl;
23     cout << "Your BMI is: " << bmi << endl;
24     while (1);
25     return 0;
26 }

 技术图片

3.编写一个程序,要求用户以度、分、秒的方式输入一个纬度,然后以度为单位显示该纬度。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, 51 minutes, 19 seconds =37.8553 degrees

 1 #include<iostream>
 2 using namespace std; 
 3 
 4 int main()
 5 {
 6     const int n = 60;
 7     double degree,minute,second,result;
 8     cout << "Enter a latitude in degrees,minutes,and seconds: "<<endl;
 9     cout << "First,enter the degrees: ";
10     cin >> degree;
11     cout << "Next,enter the minutes of arc: ";
12     cin >> minute;
13     cout << "Finally,enter the seconds of arc: ";
14     cin >> second;
15     result = degree + (minute + second / n) / n;
16     cout << degree << " degrees," << minute << " minutes," << second << " seconds= " << result << " degrees" << endl;
17     while (1);
18     return 0;
19 }

 技术图片

 4.编写一个程序,要求用户以整数方式输入秒数(使用long或者longlong变量存储),然后以天、小时、分钟和秒的方式显示这段时间。使用符号常量来表示每天有多少小时、多少小时有多少分钟以及每分钟有多少秒。该程序的输出应与下面类似:
Enter the number of seconds: 31600000
31600000 seconds = 365 days, 17 hours, 46 minutes, 40 seconds

 1 #include<iostream>
 2 using namespace std; 
 3 
 4 int main()
 5 {
 6     const int n1 = 24;
 7     const int n2 = 60;
 8     long second;
 9     int day, hour, minute, seconds;
10     cout << "Enter the number of seconds: ";
11     cin >> second;
12     day = second / (n1*n2*n2);
13     hour = (second % (n1*n2*n2)) / (n2*n2);
14     minute = ((second % (n1*n2*n2)) % (n2*n2)) / n2;
15     seconds = ((second % (n1*n2*n2)) % (n2*n2)) % n2;
16     cout << second << " seconds = " << day << " days, " << hour << " hours, " << minute << " minutes, " << seconds << " seconds";
17     while (1);
18     return 0;
19 }

 技术图片 

 5.编写一个程序,要求用户输入全球当前的人口和美国当前的人口(或其他国家的人口)。将这些信息存储在longlong变量中,并让程序显示美国(或其他国家)的人口占全球人口的百分比。该程序的输出应与下面类似:
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.

 1 #include<iostream>
 2 using namespace std; 
 3 
 4 int main()
 5 {
 6     long long all, usa;
 7     double rate;
 8     cout << "Enter the world‘s population: ";
 9     cin >> all;
10     cout << "Enter the population of the US: ";
11     cin >> usa;
12     rate = usa *1.0 / all * 100;
13     cout << "The population of the US is " << rate << "% of the world population.";
14     while (1);
15     return 0;
16 }

技术图片

 注:两个long类型或long long 类型的数值相除,结果会自动取整。               解决:在做除的操作时,被除数先乘以1.0转为浮点数再去除以除数,这样得到的结果就是小数。

6.编写一个程序,要求用户输入驱车里程(英里)和使用汽油量(加仑),然后指出汽车耗油量为一加仑的里程。如果愿意,也可以让程序要求用户以公里为单位输入距离,并以升为单位输入汽油量,然后指出欧洲风格的结果 —— 即 每 100 公里的耗油量(升)。

 1 #include<iostream>
 2 using namespace std; 
 3 
 4 int main()
 5 {
 6     double mile, gallon, km, liter;
 7     cout << "请输入驱车里程(英里):";
 8     cin >> mile;
 9     cout << "请输入耗油量(加仑):";
10     cin >> gallon;
11     km = mile*1.609344;
12     liter = gallon*3.7854118;
13     cout << "汽车耗油量为:一加仑里程" << mile / gallon << "英里,即每100公里的耗油量" << liter / km * 100 << "升。" << endl; 
14     while (1);
15     return 0;
16 }

 技术图片

 7.编写一个程序,要求用户按欧洲风格输入汽车的耗油量(每100公里消耗的汽油量(升)),然后将其转换为美国风格的耗油量——每加仑多少英里。注意,除了使用不同的单位计量外,美国方法(距离/燃料)与欧洲方法(燃料/距离)相反。100公里等于62.14英里,1加仑等于3.875升。因此19mpg大约合12.4L/100km,27mpg大约合8.7L/100km。

 1 #include<iostream>
 2 using namespace std; 
 3 
 4 int main()
 5 {
 6     double uk, us,gallon, km, liter;
 7     cout << "请输入汽车耗油量(升/100公里):";
 8     cin >> uk;
 9     us = 3.875*62.14 / uk;
10     cout << "汽车耗油量为:每加仑" << us << "英里" << endl;
11     while (1);
12     return 0;
13 }

技术图片

 

[C++ Primer Plus] 第3章、处理数据——课后习题

标签:nbsp   程序   百分比   输入   prim   std   ima   ++   ongl   

原文地址:https://www.cnblogs.com/Fionaaa/p/12257919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!