知识与概念
在这节课中,我们将学习5个常用的简单函数:abs、sqrt、max、min 和 rand。这些函数在编程中非常有用,可以帮助我们进行数值计算和生成随机数。
- abs(x) : 返回数字
x的绝对值。绝对值是指一个数值距离零的距离,不管它原来是正数还是负数。例如,abs(-5)会返回5,而abs(5)仍然会返回5。 - sqrt(x) : 计算数字
x的平方根。平方根是一个数值,它的平方等于给定的数字。例如,sqrt(25)会返回5,因为5 * 5 = 25。 - max(a, b) : 返回
a和b中的较大值。例如,max(3, 5)会返回5。 - min(a, b) : 返回
a和b中的较小值。例如,min(3, 5)会返回3。 - rand() : 生成一个随机数。它返回一个在0到
RAND_MAX之间的随机整数,RAND_MAX是一个预定义的常量。
例题和代码讲解
例题1:使用 abs 函数
问题 : 计算 -7 和 4 的绝对值,并输出较大的一个。
代码示例 :
#include <iostream>
#include <cstdlib> // 包含 abs 函数
using namespace std;
int main() {
int num1 = -7, num2 = 4;
// 获取两个数的绝对值
int abs_num1 = abs(num1);
int abs_num2 = abs(num2);
// 输出较大的绝对值
if(abs_num1 > abs_num2) {
cout << "绝对值较大的数是: " << abs_num1 << endl;
} else {
cout << "绝对值较大的数是: " << abs_num2 << endl;
}
return 0;
}解释 :
abs(-7)返回7,abs(4)返回4。- 然后判断哪个绝对值较大,并输出结果。
例题2:使用 sqrt 函数
问题 : 计算 36 的平方根并输出结果。
代码示例 :
#include <iostream>
#include <cmath> // 包含 sqrt 函数
using namespace std;
int main() {
double number = 36;
// 计算平方根
double result = sqrt(number);
cout << "36 的平方根是: " << result << endl;
return 0;
}解释 :
sqrt(36)返回6,因为6 * 6 = 36。- 输出结果为 6。
习题和提示
习题1:使用 max 和 min 函数
问题 : 给定两个数字 a = 15 和 b = 20,使用 max 和 min 函数输出它们中的最大值和最小值。
提示 :
- 使用
max(a, b)输出最大值。 - 使用
min(a, b)输出最小值。
习题2:生成一个随机数
问题 : 编写程序,生成一个随机数,并输出它。提示: 使用 rand() 函数。
提示 :
rand()函数生成的是一个随机整数,范围从0到RAND_MAX。- 可以通过取余 (
%) 来限制随机数的范围。
示例代码 :
#include <iostream>
#include <cstdlib> // 包含 rand 函数
using namespace std;
int main() {
// 生成一个0到100之间的随机数
int randomNumber = rand() % 101; // rand() 生成一个随机数,再取余 101
cout << "生成的随机数是: " << randomNumber << endl;
return 0;
}总结
abs(x)用于计算数字的绝对值。sqrt(x)用于计算数字的平方根。max(a, b)返回a和b中的较大值。min(a, b)返回a和b中的较小值。rand()生成一个随机数,可以通过取余来限制范围。
通过实践这些函数,学生能够更好地理解它们在实际编程中的应用,并通过练习加深对它们的掌握。
tips
默认情况下,rand() 生成的随机数是固定的。这是因为它依赖于一个固定的种子值来生成随机数。每次运行程序时,如果没有设置不同的种子值,rand() 会从同一个种子值开始生成相同的随机数序列,因此每次程序运行的结果是一样的。
为了让 rand() 生成不同的随机数序列(也就是每次运行程序时产生不同的随机数),我们通常会使用 srand() 函数来设置一个随机数种子。常见的做法是使用当前时间作为种子,这样每次运行程序时,种子值都会不同,从而生成不同的随机数。
代码示例:使用 srand() 来改变随机数种子
#include <iostream>
#include <cstdlib> // 包含 rand 和 srand 函数
#include <ctime> // 包含 time 函数
using namespace std;
int main() {
// 使用当前时间作为随机数种子
srand(time(0));
// 生成一个0到100之间的随机数
int randomNumber = rand() % 101;
cout << "生成的随机数是: " << randomNumber << endl;
return 0;
}解释:
srand(time(0))使用当前的时间(time(0))作为种子值。time(0)返回当前时间的秒数,这样每次程序运行时都会得到不同的种子值,从而生成不同的随机数序列。rand()生成的随机数将会因种子不同而不一样。
因此,只有在使用srand()设置了种子之后,rand()才会每次生成不同的随机数。
如何输入n个数
输入n个数,分别加1后输出
#include <iostream>
using namespace std;
int main() {
int n, num; // n 用来存储数字的个数,num 用来存储每次输入的数字
// 输入 n 的值
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> num; // 读取一个数字
cout << num + 1 << " "; // 输出数字增加 1 后的结果
}
return 0;
}循环练习题目
计算思维:告诉计算机怎么计算,利用计算机的算力,而不是告诉它结果。