• C++
  • C++变量操作与数字处理基础教程

  • @ 2025-7-19 9:40:07

C++变量操作与数字处理基础教程

一、变量的基本操作

变量是程序中存储数据的"容器",掌握变量的定义、赋值和命名规则是编程的基础。

1.1 变量的定义与赋值

不同类型的变量有不同的定义和赋值方式,常见类型如下:

数据类型 定义方式 初始化赋值方式 赋值操作
基本整型 int 变量名; int 变量名 = 值; 变量名 = 值;
长整型 long long 变量名; long long 变量名 = 值;
浮点型 float 变量名; float 变量名 = 值;
双精度浮点型 double 变量名; double 变量名 = 值;
字符型 char 变量名; char 变量名 = 值;
布尔型 bool 变量名; bool 变量名 = 值;

示例

// 定义变量
int age;
double score;

// 初始化赋值
int height = 180;
char gender = 'M';

// 赋值操作
age = 20;
score = 95.5;

1.2 变量命名规则

给变量取名时需要遵循以下规则:

  1. 只能包含大小写字母、数字和下划线_,不能以数字开头($也可用但不推荐)
  2. 不能使用C++关键字(如intfloatif等)
  3. 区分大小写(myVarmyvar是两个不同变量)
  4. 不能包含空格和特殊字符(如@#%等)
  5. 应具有描述性,清晰表达变量用途
  6. 长度无限制,建议不超过30个字符

示例

// 正确的变量名
int age;         // 年龄
int student_count; // 学生数量
float temp;      // 温度

// 错误的变量名
int 3score;      // 不能以数字开头
int my-score;    // 不能包含减号
int if;          // 不能使用关键字

二、赋值操作与变量交换

2.1 赋值运算符

=是赋值运算符,作用是将右边的值存储到左边的变量中(注意:不是数学中的等于)。

int a;
a = 5;  // 将5存储到变量a中
int b = 10;  // 定义的同时赋值(初始化)

2.2 变量交换的方法

交换两个变量的值需要特殊处理,否则会丢失数据。

方法一:使用中间变量(推荐)

#include <iostream>
using namespace std;

int main()
{
    int a = 3, b = 5, c;  // 定义三个变量,c作为中间变量
    c = b;  // 先把b的值保存到c
    b = a;  // 再把a的值赋给b
    a = c;  // 最后把c中保存的b原值赋给a
    cout << a << " " << b;  // 输出结果:5 3
    return 0;
}

方法二:不使用中间变量(适用于数字)

#include <iostream>
using namespace std;

int main()
{
    int a = 3, b = 5;
    a = a + b;  // a变成两数之和(8)
    b = a - b;  // 用和减去b得到原来的a(3),赋值给b
    a = a - b;  // 用和减去现在的b(原来的a)得到原来的b(5),赋值给a
    cout << a << " " << b;  // 输出结果:5 3
    return 0;
}

三、模运算与数字拆分

模运算(%)是处理数字的重要工具,尤其在拆分数字时非常有用。

3.1 模运算的概念

%称为"模"或"取余",用于计算两个数相除后的余数:

// 模运算示例
5 % 2 = 1;   // 5除以2商2余1
7 % 3 = 1;   // 7除以3商2余1
13 % 10 = 3; // 13除以10商1余3
8 % 10 = 8;  // 8除以10商0余8

3.2 数字拆分技巧

通过模运算和除法运算的组合,可以拆分一个整数的各个数位:

  • 个位数:数字 % 10
  • 十位数:数字 / 10 % 10
  • 百位数:数字 / 100 % 10
  • 千位数:数字 / 1000 % 10
  • 以此类推...

示例:拆分数字1234

int n = 1234;
int ge = n % 10;        // 4(个位数)
int shi = n / 10 % 10;  // 3(十位数)
int bai = n / 100 % 10; // 2(百位数)
int qian = n / 1000 % 10; // 1(千位数)

四、实战案例:反向输出三位数

4.1 问题描述

输入一个三位数,将其反向输出。例如:

  • 输入:358,输出:853
  • 输入:100,输出:001

4.2 解题思路

  1. 读取输入的三位数
  2. 拆分出个位数、十位数和百位数
  3. 按照"个位数→十位数→百位数"的顺序输出

4.3 代码实现

#include<iostream>
using namespace std;

int main() {
    int a;                  // 定义变量a用于存储输入的三位数
    cin >> a;               // 从标准输入读取一个三位数
    
    // 拆分各个数位
    int ge = a % 10;        // 计算个位数:原数模10
    int shi = a / 10 % 10;  // 计算十位数:原数除以10后再模10
    int bai = a / 100 % 10; // 计算百位数:原数除以100后再模10
    
    // 输出反转后的数字
    // 注意:直接输出三个数字即可得到带前导零的结果
    cout << ge << shi << bai;
    
    return 0;
}

4.4 代码说明

  • 如果输入100:
    • 个位数:100 % 10 = 0
    • 十位数:100 / 10 % 10 = 10 % 10 = 0
    • 百位数:100 / 100 % 10 = 1 % 10 = 1
    • 输出:0 << 0 << 1 → 001

五、练习题

掌握了以上知识,可以尝试解决以下练习题:

  1. P71 练13.3 反向输出一个三位数
  2. P64 练12.3 A×B问题
  3. P448 【例81.1】计算(a+b)/c的值
  4. P57 练11.4 计算(a+b)×c的值
  5. P53 【例11.2】数字对调
#include<iostream>
using namespace std;
int main() {
    int a;// 定义变量a用于存储输入的三位数
    cin >> a;// 从标准输入读取一个三位数
    int ge = a % 10;// 计算个位数
    int shi = a / 10 % 10;// 计算十位数
    int bai = a / 100 % 10;// 计算百位数
    cout << ge * 100 + shi * 10 + bai;// 输出反转后的三位数
    return 0;
}

通过这些练习,可以巩固变量操作和数字处理的基础知识,为更复杂的编程打下基础。

0 条评论

目前还没有评论...