什么是操作数
运算对象(常量、变量、函数)
• 算数运算符
+,-,*,/,%(求余)
除法
求余
在C语言中,求余运算的结果的符号与被除数的符号是相同的;而除法运算中,被除数和除数有一个为负数,结果为负数
算术表达式的优先级
算术表达式的结合性
左结合
右结合
“()”优先级最高
实例
分离数位
问题:输出一个三位数的个位、十位、百位数字 |
• 方法一:
百位:153/100=1 实际含义:153中包括几个100
十位:153-1*100=53 153%100=53
53/10=5 53/10=5
个位:153%10=3 实际含义:对10求余屏蔽掉百位与十位上的数。
求余运算还有什么用? |
- 对p求模取余:H(k)=k%p
作用:将一个大范围的自然数集合映射到一个范围较小的自然数的集合上
自然数K对P进行求余,得到映射后的结果
应用: 哈希查找算方法中,用来构造哈希函数
-
生成指定范围的随机函数rand()
• C语言提供rand()函数只能生成一个0~32767之间的随机函数
• 问题:如何生成一个指定范围(如1~100)内的随机数?
• Magic=rand()%100; ——>生成0~99 (对100取余,那么必定是小于100的自然数,又由被除数的的大小可以确定生成数的范围在0~99)
• Magic=rand()%100+1; //1~100 -
判断某数能否被另一个数整除
判断X%5的结果是否为0
如果为0则可以整除,反之。
如何进行更为复杂的数学运算?
常用的标准数学函数
需要加入编译预处理指令
#include<math.h>
关于求余运算
在C语言中,如果被除数为负值,则对一个正数求余的时候,求出的余数也是一个负数。在某些场合下,我们需要求出它的正余数,例如:在C语言中有(-11)%5=-1,但是如果我们希望得到的余数不是-1,而是4,那么如何计算呢?
答:先用if else条件语句判断,如果是正数直接得出结论;如果是负数再加上除数
其他应用
求素数,最大公约数,判断闰年等