- 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 变量命名规则
给变量取名时需要遵循以下规则:
- 只能包含大小写字母、数字和下划线
_
,不能以数字开头($
也可用但不推荐) - 不能使用C++关键字(如
int
、float
、if
等) - 区分大小写(
myVar
和myvar
是两个不同变量) - 不能包含空格和特殊字符(如
@
、#
、%
等) - 应具有描述性,清晰表达变量用途
- 长度无限制,建议不超过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 解题思路
- 读取输入的三位数
- 拆分出个位数、十位数和百位数
- 按照"个位数→十位数→百位数"的顺序输出
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
五、练习题
掌握了以上知识,可以尝试解决以下练习题:
- P71 练13.3 反向输出一个三位数
- P64 练12.3 A×B问题
- P448 【例81.1】计算(a+b)/c的值
- P57 练11.4 计算(a+b)×c的值
- 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 条评论
目前还没有评论...