介绍
算术运算符是对数值类型的变量进行运算的,在 C 程序中使用的非常多
算术运算符一览
案例演示
1) 案例演示算术运算符的使用(operator.c)。 +, - , * , / , %, ++, – , 重点讲解 /、%、++
2) 自增:++ 作为独立的语句使用: 前++和后++都完全等价于 i=i+1; 作为表达式使用 前++:++i 先自增后赋值 后++:i++先赋值后自增
3) – ,+、-、* 是一个道理,完全可以类推。
4)代码展示1
#include<stdio.h>
void main(){
//处理的流程 10 / 4 = 2.5 ==截取整数==> 2 => 2.00000
double d1 = 10 / 4;
double d2 = 10.0 / 4;
//如果希望保留小数,参与运算数必须有浮点数
//给大家一个取模的公式
//a % b = a - a / b * b
int res1 = 10 % 3; // 求 10/3 的余数 1
int res2 = -10 % 3; // = -10 - (-10) / 3 * 3 = -10- (-3) * 3 = -10 + 9 = -1
int res3 = 10 % -3; // 10 - 10 / (-3) * (-3) = 10 - 9 = 1
int res4 = -10 % -3; // ? -1
printf("\nd1=%f d2=%.2f res1=%d res2=%d res3=%d res4=%d", d1, d2, res1, res2,res3,res4);
}
代码展示2:
#include<stdio.h>
void main(){
int i = 10;
int j = i++; // 运算规则等价是 int j = i; i = i + 1; ==> j = 10, i=11
int k = ++i; // 运算规则等价 i = i + 1; int k = i; ===> i=12, k =12
printf("\n i=%d j=%d", i, j); //i=12 j=10
printf("\n i=%d k=%d", i ,k );// i = 12 k = 12
//++ 或者 -- 还可以独立使用, 就相当于自增
//k++ 等价于 k = k +1
//++k 等价于 k= k +1
//如果独立使用 ++k 和 k++ 完全等价
k++; // k = 13
++k;// k = 14
printf("\n k=%d", k); //k = 14
}
细节说明
1)对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例 如:int x= 10/3 ,结果是 3
2)当对一个数取模时,可以等价 a%b=a-a/b*b , 这样我们可以看到 取模的一个本质运算。
3)当 自增 当做一个独立语言使用时,不管是 ++i; 还是 i++; 都是一样的,等价
4)当 自增 当做一个 表达式使用时 j = ++i 等价 i = i + 1; j = i;
5)当 自增 当做一个 表达式使用时 j = i++ 等价 j = i; i = i + 1;
自增,自减课堂练习 1
#include<stdio.h>
void main(){
int i1 = 10, i2 = 20;
int i = i1++; //i = 10 , i1 = 11
printf("i=%d\t",i);
printf("i1=%d\n", i1);
i = ++i1; //i = 12 , i1 = 12
printf("i=%d\t", i);
printf("i1=%d\n", i1);
i = i2--; //i = 20 ,i2 = 19
printf("i=%d\t",i);
printf("i2=%d\n",i2);
i = --i2; //i = 18 , i2 =18
printf("i=%d\t", i);
printf("i2=%d\n", i2);
}
课堂练习 2
1)假如还有 97 天放假,问:xx 个星期零 xx 天
2)定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度。