第五章:if-else-else if语句

文章目录

  • 一、if-else语句
    • 1.if-else语句的基本格式
    • 2.例题
  • 二、if-else if-else语句
    • 1.学生分数等级划分程序
    • 2.骑车与走路
      • 浮点型变量
        • 1.float
        • 2.double
        • 3.long double
        • 4._Float16
        • 5.long double _Complex
        • 6.其他
      • 题解


一、if-else语句

1.if-else语句的基本格式

if(条件) {
	条件为真时执行;
} else {
	条件为假时执行;
}

2.例题

输入一个数,输出它的绝对值
【问题描述】编程现输入一个整数,输出它的绝对值
【样例输入】51
【样例输出】51
【样例输入】-34
【样例输出】34
完整代码:

#include 

using namespace std;

int main(){
	int num;
	cin >> num;
	if(num >= 0) {
		cout << num << endl;
	} else {
		cout << -num << endl;
	}
	return 0;
}

这道题出的有点问题,不过确实可以用if-else的方法解决,如果再往后学,可以有这样的解法:

#include 
#include 

using namespace std;

int main() {
	int n
	cin >> n;
	cout << abs(n) << endl;
	return 0;
}

其中abs()函数可以直接计算某个数值的绝对值。

二、if-else if-else语句

通过标题和一的对比,多了一个else if,可以理解为python中的elif。定义和使用也很简单,else if就是放在if后面的,如果if的条件为假,那么将会判断else if中的条件是否为真,如果为真,则执行并跳出整个if,如果为假,将会向下执行,寻找下一个else if或else,如果没有,则继续执行。使用也很简单,和if一样。

1.学生分数等级划分程序

分数 等级
score >= 90 A
80 <= score < 90 B
70 <= score < 80 C
60 <= score < 70 D
score < 60 不及格

完整代码:

#include 

using namespace std;

int main() {
	int score;
	cin >> score;
	if(score >= 90) cout << "A" << endl;
	else if(score >= 80) cout << "B" << endl;
	else if(score >= 70) cout << "C" << endl;
	else if(score >= 60) cout << "D" << endl;
	else cout << "不及格" << endl;
	return 0;
}

2.骑车与走路

【问题描述】在北大校园里,没有自行车,上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间,假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。
输入一行,包含一个整数,表示一次办事要行走的距离,单位为米。
输出一行,如果骑车快,输出一行““Bike”;如果走路快,输出一行"Walk”;如果一样快,输出一行"All"。
【样例输入】120
【样例输出】Bike

浮点型变量

要做这道题,我们需要了解C++如何存储小数。
小数,即浮点型数据,在C++中,浮点型变量可以存储浮点型数据。
浮点型变量几乎就这几种:

1.float

float应该是最小的浮点型变量了,它的精度为大约7位小数。B

2.double

double是在一般的小程序中最常用到的类型了,它的精度大约是15位小数。

3.long double

这是比double更长的浮点类型。long double在不同编译器和平台上的存储长度可能会有所不同,但通常情况下,它至少与double一样长。long double提供了更高的精度,但也会占用更多的内存。

4._Float16

这是C++17标准引入的一种新的浮点类型。这种类型在内存占用和精度上介于float和double之间。然而,需要注意的是,并非所有编译器都支持_Float16类型,因此在使用之前应该确认编译器的兼容性。

5.long double _Complex

除了这些标准的浮点类型外,C++还提供了一种特殊的浮点类型long double _Complex,用于表示复数。这种类型同时包含实数部分和虚数部分,可以用于进行复数运算。

6.其他

在C++中,除了上述提到的浮点型变量类型,目前没有其他的标准浮点类型。float、double、long double、_Float16和long double _Complex是C++标准支持几乎所有的浮点类型。

当然,你也可以使用自定义的浮点类型,比如使用结构体或类来实现自己的浮点类型,但这就不是C++标准定义的浮点类型了。自定义的浮点类型需要自行定义相关的运算和精度控制。但正如我所提到的,C++标准可能没有提供其他额外的浮点类型。

题解

上面讲述了很多不同的浮点类型,但是本程序会使用最常用的double类型解决。
完整代码:

#include 

using namespace std;

int main() {
	double s, wt, bt;
	cin >> s;
	wt = s / 1.2;
	bt = s / 3.0 + 27 + 23;
	if (wt < bt) coout << "walk" << endl;
	else if (wt > bt) cout << "Bike" << endl;
	else cout << "All" << endl;
	return 0;
}

你可能感兴趣的:(c++,算法,开发语言)