C++第二次学习任务

1.为什么C++有多种整型?

在C++程序编写过程中我们常常用到int,那么其实int的数据类型就是我们今天要了解的整型。事实上整型并不只有int一种,还有short(短整型)、long(长整型)和long long(长长整型)。
它们既然有着不同的“名字”,那肯定是有一定区别的。这里用一张表格来展示它们的区别之处

数据类型占用空间取值范围
short(短整型)2字节-2¹⁵~2¹⁵-1
int(整型)4字节-2³¹~2³¹-1
long(长整型)Windows为4字节,Linux为4字节(32位),8字节(64位)-2³¹~2³¹-1
long long(长长整型)8字节-2⁶³~2⁶³-1

从表格中可以看出不同种类的整型的取值范围是明显不同的,那当我们想要用一个变量去存储一个数时,当然要根据数的大小用相应的整型去定义变量了

2.编写一个程序,要求用户以整数方式输入秒数(使用longlong long)然后以天、小时、分钟和秒的方式来显示这段时间。

这道题本质上就是一道简单的单位换算的问题。我们要注意的是,如果输入的是一个很大的秒数,那么即使转化成分钟依旧较大,所以这里建议保存分钟、小时、天的变量都用long long定义

#include <iostream>
using namespace std;

int main()
{
	long long t,a,b,c,d;
	cout <<"请以整数的形式输入一个不小于1的秒数:"<<endl;
	cin >> t;
	cout <<"您输入的秒数为:"<< t <<"second(s)"<<endl;
	a=t/60/60/24;
	cout <<"这段时间是:"<< a <<"day(s)"<<endl;
	b=t/60/60;
	cout <<"这段时间是:"<< b <<"hour(s)"<<endl;
	c=t/60;
	cout <<"这段时间是:"<< c <<"minute(s)"<<endl;
	d=t;
	cout <<"这段时间是:"<< d <<"second(s)"<<endl;

	system("pause");
	return 0;
}

3.编写一个程序输入全球当前的人口和中国当前的人口,将这些信息储存在long long变量中,并显示中国的人口占全球人口的百分比。

#include <iostream>
using namespace std;

int main()
{
    long long wp,cp;
    cout << "请输入世界人口:" << endl;
    cin >>wp;
    cout << "请输入中国人口:" << endl;
    cin >>cp;
    double percent = double(cp)/double(wp) * 100;
    cout <<"中国人口占世界人口比重为:"<< percent <<"%"<<endl;

	system("pause");
    return 0;
}

程序代码如上,我们需要格外注意的一行是:
double percent = double(cp)/double(wp) * 100;
这短短的一行中包含着三个double,但一个一个分开看就会很明了。在这段代码中我们的变量percent是用来存储人口比值的,而这个比值为整数的概率是很小的,所以第一个double用来定义双精度浮点型变量percent.
在C或C++中,两个整数相除得到的还是整数,那放到这题,两个人口值一定是整数,但人口占比除出来一定是个0~1之间的数。显然,单纯的用人口数相除,那么C或C++就会默认这个比值为零,但这与事实相悖。
这里,提出一个概念——强制转换类型,通常通过数据类型(被转换数据) 来实现,例如:

int a;//定义一个整型变量a
double(a);//将整型变量a强制转换成浮点型变量

说到这里,上面的第二、三个double应该就不难理解了

4.编写一个程序,要求以几英尺几英寸输入身高,并以磅为单位输入体重,(使用三个变量来存储信息)为了计算BMI,将英寸转化为米,(1英尺为12英寸1英寸为0.0254米),将磅转化为千克. (1千克=2.2磅)最后计算BMI体重除以身高的平方。

代码如下,这题和前面时间换算的题非常相似,在这里不做细致讲解

#include<iostream>
using namespace std;

int main()
{
	int FootToInch=12;//1英尺=12英寸
	double  InchToMeter=0.0254;//1英寸=0.0254米
	double  PoundToKg=1/2.2;//1千克=2.2磅
	/*
	FootToInch、InchToMeter、PoundToKg等均为普通变量,并不具有任何特殊含义
	*/
	int foot,inch,pound;
	double meter,kg,BMI;
	cout <<"请以几英尺几英寸的方式输入您的身高\n";
	cout <<"请输入英尺的值:";
	cin >>foot;
	cout <<"请输入英寸的值:";
	cin >>inch;
	cout <<"请输入您的体重(磅):";
	cin >>pound;
	meter=foot*FootToInch*InchToMeter;
	kg=pound*PoundToKg;
	BMI=kg/meter/meter;
	cout <<"您的身高为"<< meter <<"米,您的体重为"<< kg <<"千克,您的BMI为"<< BMI <<endl;

	system("pause");
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值