知识与概念

在这节课中,我们将学习5个常用的简单函数:abssqrtmaxminrand。这些函数在编程中非常有用,可以帮助我们进行数值计算和生成随机数。

  1. abs(x) : 返回数字 x 的绝对值。绝对值是指一个数值距离零的距离,不管它原来是正数还是负数。例如,abs(-5) 会返回 5,而 abs(5) 仍然会返回 5
  2. sqrt(x) : 计算数字 x 的平方根。平方根是一个数值,它的平方等于给定的数字。例如,sqrt(25) 会返回 5,因为 5 * 5 = 25
  3. max(a, b) : 返回 ab 中的较大值。例如,max(3, 5) 会返回 5
  4. min(a, b) : 返回 ab 中的较小值。例如,min(3, 5) 会返回 3
  5. 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) 返回 7abs(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:使用 maxmin 函数
问题 : 给定两个数字 a = 15b = 20,使用 maxmin 函数输出它们中的最大值和最小值。
提示 :

  • 使用 max(a, b) 输出最大值。
  • 使用 min(a, b) 输出最小值。

习题2:生成一个随机数

问题 : 编写程序,生成一个随机数,并输出它。提示: 使用 rand() 函数。
提示 :

  • rand() 函数生成的是一个随机整数,范围从 0RAND_MAX
  • 可以通过取余 (%) 来限制随机数的范围。
    示例代码 :
#include <iostream>
#include <cstdlib>  // 包含 rand 函数
using namespace std;
 
int main() {
    // 生成一个0到100之间的随机数
    int randomNumber = rand() % 101;  // rand() 生成一个随机数,再取余 101
    
    cout << "生成的随机数是: " << randomNumber << endl;
 
    return 0;
}

总结

  1. abs(x) 用于计算数字的绝对值。
  2. sqrt(x) 用于计算数字的平方根。
  3. max(a, b) 返回 ab 中的较大值。
  4. min(a, b) 返回 ab 中的较小值。
  5. 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;
}

循环练习题目

计算思维:告诉计算机怎么计算,利用计算机的算力,而不是告诉它结果。

P5718

模拟

全搜索