+ - * / % ++ -- +=......
运算以得到正确的结果
表达式是一组 运算符 和 运算数 的组合,用来计算一个值
如下都是表达式:
运算符 是指如 + - * / % ++ --等表示运算规则的符号
运算数 指参加运算的值,可能是常量也可能是变量,还可能是一个函数的返回值
假设变量 A 的值为 10,变量 B 的值为 20,则:
运算符 | 描述 | 实例 |
---|---|---|
+ | 加法 | A + B 将得到 30 |
- | 减法 | A - B 将得到 -10 |
* | 乘法 | A * B 将得到 200 |
/ | 除法 | B / A 将得到 2 |
% | 取余,整除余数,只有整数可以取余 | B % A 将得到 0 |
++ | 自增运算符,变量增加 1 | A++ 将得到 11 |
-- | 自减运算符,变量减少 1 | A-- 将得到 9 |
int a=10;
a++;
cout<<a<<endl;//输出11
++a;
cout<<a<<endl;//输出12
int a=10;
a--;
cout<<a<<endl;//输出9
--a;
cout<<a<<endl;//输出8
自增:
自减:
int a=10;
cout<<a++<<endl;//输出10,先输出再增加
cout<<a<<endl;//11 a确实是增加了的
int a=10;
cout<<++a<<endl;//输出什么呢?
先自增:
后自增:
先后自减也是一样的,但是要注意:
接下来请完成《课内练习一:自增自减练习》
int a=1234;
cout<<a/10;
cout<<a/100;
cout<<a/1000;
123 4
int a=1234;
cout<<a%10;
cout<<a%100;
cout<<a%1000;
12 34
1 234
123(4)
12(34)
1(234)
int a=1234;
cout<<a/10;
cout<<a/100;
cout<<a/1000;
123 4
int a=1234;
cout<<a%10;
cout<<a%100;
cout<<a%1000;
12 34
1 234
123(4)
12(34)
1(234)
int a=123;
直接保留后1位
先保留在去除
先去除再保留
a%10
a/10
a%100
%10
/10
123=>12
=>1(2)=>2
1(23)=>23
=>23=>2
直接去掉后2位
a/100
接下来请完成《课内练习二:求各个位数》
int a=1234; 都用先去除再保留会简单一点
a%10
接下来请完成《课内练习三:求四位数各个位数》
a/10%10
a/100%10
a/1000%10
int a=1,b=2;
a=b;
b=b*2+a;
cout<<a<<endl;//输出2
cout<<b<<endl;//输出什么?
特点:
符号 | City |
---|---|
+= | C += A 相当于 C = C + A |
-= | C -= A 相当于 C = C - A |
*= | C *= A 相当于 C = C * A |
/= | C /= A 相当于 C = C / A |
%= | C %= A 相当于 C = C % A |
赋值运算符就是将a=a+1; a=a*2;这种语句简写的一种方式而已,有如下这些赋值运算符
C++中引入cmath库后可以使用库中的各种函数
函数 | 名 | 解释 |
---|---|---|
abs(x) | 绝对值 | 去掉正负号之后的数字 |
ceil(x) | 向上取整 | 3.111得到4 |
floor(x) | 向下取整 | 3.999得到3 |
pow(x,y) | 次方 | x的y次方 |
sqrt(x) | 开根 | 求根号x的值 |
fmod(x,y) | 小数取余 | x取余x的结果 |
abs(x) 求整数、小数的绝对值 正数不变,负数变正数
如:abs(-3) 得到 3
abs(-4.15) 得到 4.15
abs(4.15) 得到 4.15
注意:
cout<<abs(5)/2<<endl;//输出2
cout<<abs(5.0)/2; //输出2.5
接下来请完成《练习四:家的距离》
ceil( ) 求一个小数向上取整的结果,但是返回的是小数
如: ceil(4.99) 得到 5
ceil(4.11) 得到 5
ceil(4.0) 得到 4
ceil(-3.99) 得到 -3 //向上取整,向大的数取整
只要小数部分不是0,就会向上加1,小数部分归零
cout<<ceil(4.55)/2; //得到5.0/2的结果
floor( ) 求一个小数向下取整的结果,但是返回的是小数
如: floor(4.99) 得到 4
floor(4.11) 得到 4
floor(4.0) 得到 4
floor(-3.99) 得到 -4 //向下取整,向小的数取整
注意负数时的差别
三者都是取整,但是也有区别
ceil( ) | floor( ) | int( ) | |
---|---|---|---|
含义 | 向上取整 | 向下取整 | 去掉小数 |
返回类型 | 小数 | 小数 | 整数 |
对3.4取整 | 4 | 3 | 3 |
对-3.4取整 | -3 | -4 | -3 |
接下来请完成《练习五:红包钱给妈妈存》
pow(x,y) 能用来求 x 的 y 次方
比如2的10次方是 10个2相乘 结果是1024
就能用 pow(2,10) 求出来
也能求小数的次方 如 pow(1.1,2) =>1.21
返回的都是小数,不管什么输入
cout<<pow(2,20);//1.04858e+006
//直接输出的时候 可能会用科学计数法显示
接下来请完成《练习六:次方计算》
sqrt(x) 表示求谁的平方是x的意思
如sqrt(4) 得到2 因为2的平方是4
如sqrt(1.44) 得到1.2 因为1.2的平方是1.44
返回的都是小数
接下来请完成《练习六:次方计算》
小数不能直接%取余
但是可以这样算
double a=3.5,b=1.1;
cout<<a-int(a/b)*b;
也可以直接用函数计算
double a=3.5,b=1.1;
cout<<fmod(a,b);//输出0.2