1、C++编程中的基本运算 - 课件

一、基础知识

1、C++程序的基本框架

cpp 复制代码
// 预处理器指令,引入需要的头文件
#include <iostream>
// 使用标准命名空间
using namespace std;
// 主函数,程序的入口
int main() {
    // 局部变量声明
    // 程序逻辑代码
    // 返回值,表示程序正常结束
    return 0;
}

2、int 和 double

  1. C++中,我们使用不同的类型来存储整数和小数。

  2. int类型用于存储整数,例如:

    cpp 复制代码
    int age = 10;
    int score = 98;
  3. double类型用于存储小数,例如:

    cpp 复制代码
    double price = 9.99;
    double height = 1.75;
  4. 我们可以对int和double类型的变量进行各种算术运算,如加法、减法、乘法和除法。

  5. 当用int类型进行除法运算时,结果也是整数,小数部分会被去掉。(如:int a = 10 / 3,这里 a = 3,小数点会被去掉)。

  6. 如果想要得到小数结果,需要使用double类型(如:double a = 10 / 3,a = 3.3333......)。

  7. 在编程时,我们应该根据要存储的数字类型选择相应的变量类型,以确保正确地进行各种计算。

3、保留小数点后几位输出

fixedsetprecision() 是在 <iostream><iomanip> 库中定义的操作符,用于控制浮点数的输出格式。

  1. fixed 操作符

    • fixed 操作符用于设置定点表示法,即将小数点固定在某个位置。
    • 使用 fixed 操作符后,浮点数将总是被显示为定点数,小数点后的位数由 setprecision() 控制。
  2. setprecision() 操作符

    • setprecision() 操作符用于设置输出的精度,即控制输出的总位数(包括整数部分和小数部分)。
    • 当与 fixed 操作符配合使用时,setprecision() 的参数值即为小数点后的位数。
  3. 恢复默认输出格式

    • 使用 cout.unsetf(ios::fixed) 可以恢复默认的浮点数输出格式。
    • 默认格式下,会根据数值大小自动选择scientific(科学计数法)或fixed(定点)表示法,并且小数点后的位数会根据数值的精度自动调整。

示例代码:

cpp 复制代码
#include <iostream>
#include <iomanip>

using namespace std;

int main() {
    double num1 = 3.14159265358979323846;
    double num2 = 1234.5678;

    // 保留小数点后2位
    cout << fixed << setprecision(2);
    cout << num1 << endl;  // 输出: 3.14
    cout << num2 << endl;  // 输出: 1234.57

    // 保留小数点后4位
    cout << setprecision(4);
    cout << num1 << endl;  // 输出: 3.1416
    cout << num2 << endl;  // 输出: 1234.5678

    // 恢复默认输出格式
    cout.unsetf(ios::fixed);
    cout << num1 << endl;  // 输出: 3.14159
    cout << num2 << endl;  // 输出: 1234.57

    return 0;
}

注意事项:

  • fixedsetprecision()defaultfloat 操作符影响之后所有的浮点数输出,直到再次使用这些操作符进行修改。
  • 如果输出的数字位数不足,会在小数点后补零;如果超出,则会四舍五入。
  • 在使用 setprecision() 之前,建议先使用 fixed 操作符,以确保小数点后的位数与预期一致。
  • 使用 cout.unsetf(ios::fixed) 可以方便地恢复默认的浮点数输出格式,无需手动设置精度或表示法。

4、输入、输出和换行

输入: cin

  1. cin是C++中的一个标准输入流对象,用于从标准输入设备(通常是键盘)读取数据。

  2. 要使用cin,需要在程序开头包含iostream头文件:

    cpp 复制代码
    #include <iostream>
  3. 使用cin进行输入时,数据会从标准输入设备(通常是键盘)读取,直到遇到空格、制表符或换行符。

  4. cin使用>>运算符来读取数据。例如:

    cpp 复制代码
    using namespace std;
    int age;
    cout << "请输入你的年龄: ";
    cin >> age;
  5. 可以连续使用多个>>运算符来读取多个数据:

    cpp 复制代码
    using namespace std;
    int a, b;
    cin >> a >> b;
  6. cin会自动根据变量的类型来解析输入的数据。例如,如果变量是int类型,cin会将输入解析为整数;如果变量是double类型,cin会将输入解析为浮点数。

输出:cout 换行:endl

  1. cout:

    • cout是C++中的标准输出流对象,用于将数据输出到标准输出设备(通常是屏幕)。

    • cout位于<iostream>头文件中,需要在程序开头使用#include <iostream>引入该头文件。

    • cout使用<<运算符(插入运算符)来输出数据。可以连续使用多个<<运算符来输出多个数据。

    • cout可以输出各种类型的数据,如整数、浮点数、字符、字符串、布尔值等。

    • 示例:

      cpp 复制代码
      cout << "Hello, world!" << endl;
      cout << "The sum is: " << sum << endl;
  2. endl:

    • endl是C++中的一个操纵符(manipulator),用于插入一个换行符并刷新缓冲区。

    • endl也位于<iostream>头文件中。

    • 当使用cout输出数据时,可以使用endl来换行并确保数据立即输出到屏幕上。

    • 示例:

      cpp 复制代码
      cout << "First line" << endl;
      cout << "Second line" << endl;
  3. cout和endl的组合使用:

    • 在使用cout输出数据时,通常会与endl一起使用,以实现换行和刷新缓冲区的效果。

    • 可以在一条cout语句中使用多个<<运算符和endl操纵符,以输出多个数据并换行。

    • 示例:

      cpp 复制代码
      cout << "Name: " << name << endl;
      cout << "Age: " << age << endl;
      cout << "Score: " << score << endl;
  4. 注意事项:

    • 在使用cout和endl之前,需要确保已经包含了<iostream>头文件。

5、C++中的算术运算

运算符 名称 描述 示例
+ 将两个操作数相加 int a = 5 + 3;
- 将第一个操作数减去第二个操作数 int b = 7 - 2;
* 将两个操作数相乘 int c = 4 * 6;
/ 将第一个操作数除以第二个操作数 int d = 10 / 3;
% 取模 返回第一个操作数除以第二个操作数的余数 int e = 11 % 3;
  1. +:将两个操作数相加。可以用于数字相加,也可以用于字符串拼接。
  2. -:将第一个操作数减去第二个操作数。
  3. *:将两个操作数相乘。
  4. /:将第一个操作数除以第二个操作数。
    注意
    如果两个操作数都是整数,则结果也是整数,而不是浮点数。
    (例如 : 4 / 2 = 2)
    如果想要得到浮点数结果,至少有一个操作数需要是浮点数。
    (例如:4.0 / 2 = 2.0 或者4 / 2.0 = 2.0 或者 4.0 / 2.0 = 2.0)
  • 除数不能为0,否则会导致程序错误。编译器可能会给出警告或错误信息。
    例如:int a = 10 / 0;这是非法的,会导致编译错误或运行时错误。
  1. 取模 %:返回第一个操作数除以第二个操作数的余数。这个运算符只适用于整数操作数。
  • 取模运算的结果的符号与第一个操作数的符号相同。
    例如:-11 % 3的结果是-2,而不是2
  • 与除法运算类似,取模运算的第二个操作数也不能为0,否则会导致程序错误。
    例如:int b = 10 % 0;这是非法的,会导致编译错误或运行时错误。

6、案例实操

题目:

编写一个C++程序,从用户那里读取两个整数,然后使用cout语句输出以下算术运算的结果:

  1. 第一个数加第二个数的结果
  2. 第一个数减第二个数的结果
  3. 第一个数乘以第二个数的结果
  4. 第一个数除以第二个数的结果(整数除法)
  5. 第一个数除以第二个数的结果(浮点数除法)
  6. 第一个数除以第二个数的余数(取模运算)

要求:

  • 使用cin读取用户输入的两个整数,并用空格分隔。
  • 每个运算结果输出在单独的一行,并在输出前显示相应的算术表达式。
  • 在输出整数除法结果时,添加注释说明整数和整数运算的结果是整数。
  • 为了获得浮点数除法结果,将其中一个数声明为double类型的变量,然后进行除法运算。
  • 使用endl操作符来换行,而不是\n

注意事项:

  • 请注意处理除数为零的情况,以避免运行时错误。
  • 确保用户输入的是整数,否则可能会导致输入错误和意外结果。
  • 取模运算符%只能用于整数类型,不能用于浮点数。

7、代码解析

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    int num1, num2;
    cout << "请输入两个整数,用空格分隔: ";
    cin >> num1 >> num2;

    cout << num1 << " + " << num2 << " = " << num1 + num2 << endl;
    cout << num1 << " - " << num2 << " = " << num1 - num2 << endl;
    cout << num1 << " * " << num2 << " = " << num1 * num2 << endl;

    // 整数和整数运算结果是整数
    cout << num1 << " / " << num2 << " = " << num1 / num2 << endl;

    // 将其中一个数声明为浮点数,以获得浮点数除法结果
    double num1_double = num1;
    cout << num1_double << " / " << num2 << " = " << num1_double / num2 << endl;
    
    cout << num1 << " % " << num2 << " = " << num1 % num2 << endl;

    return 0;
}

代码解析:

  1. 使用cin从标准输入读取两个整数num1num2,并使用空格分隔。

  2. 使用cout输出加法、减法和乘法运算的结果,每个结果占一行。

  3. 对于整数除法,添加注释说明整数和整数运算的结果是整数。

  4. 为了获得浮点数除法结果,将其中一个数(num1)声明为double类型的变量num1_double,然后进行除法运算。

  5. 输出取模运算的结果。

  6. 使用endl操作符来换行,而不是\n

易错点模拟:

  1. 如果输入的num2为0,在进行除法或取模运算时会导致运行时错误(除以零)。

  2. 如果输入的数字不是整数(例如包含小数点),使用cin读取时会导致输入错误,后续的计算可能会产生意外结果。

  3. 如果在取模运算中使用浮点数,编译器会报错,因为取模运算符%只能用于整数类型。

相关推荐
天秀信息学奥赛5 个月前
CCF-GESP 等级考试 2023年3月认证C++一级真题解析
c++·gesp一级