文章目录
一、if-else语句
1.if-else语句的基本格式
if(条件) {
条件为真时执行;
} else {
条件为假时执行;
}
2.例题
输入一个数,输出它的绝对值
【问题描述】编程现输入一个整数,输出它的绝对值
【样例输入】51
【样例输出】51
【样例输入】-34
【样例输出】34
完整代码:
#include <iostream>
using namespace std;
int main(){
int num;
cin >> num;
if(num >= 0) {
cout << num << endl;
} else {
cout << -num << endl;
}
return 0;
}
这道题出的有点问题,不过确实可以用if-else的方法解决,如果再往后学,可以有这样的解法:
#include <iostream>
#include <cmath>
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 <iostream>
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 <iostream>
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;
}