它不是说得很详细了么, 向负无穷方向舍入(floor()函数 (又称为地板函数, 与之相对还有天花板函数)--往小方向取整,即向负无穷方向取整), 8/3=2.67的地板为2(即模为2), -8/3=-2.67的地板为-3(即模为-3)
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了诸城免费建站欢迎大家使用!
C语言有以下几种取整方法:
1、直接赋值给整数变量。如:
int
i
=
2.5;
或
i
=
(int)
2.5;
这种方法采用的是舍去小数部分
2、C/C++中的整数除法运算符“/”本身就有取整功能(int
/
int),但是整数除法对负数的取整结果和使用的C编译器有关。
3、使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:
floor(2.5)
=
2
floor(-2.5)
=
-3
4、使用ceil函数。ceil(x)返回的是大于x的最小整数。如:
ceil(2.5)
=
3
ceil(-2.5)
=
-2
floor()是向负无穷大舍入,floor(-2.5)
=
-3;ceil()是向正无穷大舍入,ceil(-2.5)
=
-2。
这两个函数在VC++中也能使用,但使用时需要包含math.h文件。要在程序的开始添加如下代码:
#include
math.h
用数学的取整函数是可以实现的
数学取整函数[x]:设x为任意实数,则[x]=不超过x的最大整数,即可以转化为分段函数才求解:
1、若x为整数,则[x]=x;
2、若x为大于零的非整数,则[x]=x的整数部分
3、若x为小于零的非整数,则[x]=x的整数部分-1
所以我认为你要的C求余运算应该可以改写成如下数学算式:
[y/x]+z
(y/x为整数时,z=0,否则z=1)
大家还有什么更快的方法一起吼吼咯,蛮有意思的
c语言取整和取余:
示例
public class Demo_1 {undefined
public static void main(String args) {undefined
Scanner sc = new Scanner(System.in)
System.out.print("请输入要判断的数字(五位数):")
int num = sc.nextInt()
sc.close()
//截取最后一位数
int a = num % 10
//截取第一位数
int b = num / 10000
//截取第四位数
int c = num % 100 / 10
//截取第二位数
int d = num / 1000 % 10
System.out.println(a + "," + b + "," + c + "," + d)
boolean b1 = (a == b)
boolean b2 = (c == d)
if(b1 b2) {undefined
System.out.println(num + "是回文数")
}else {undefined
System.out.println(num + "不是回文数")
}
}
}
1.直接赋值给整数变量
int i = 3.5;或i = (int) 3.5。
这样的方法采用的是舍去小数部分。
2、整数除法运算符‘/’取整
‘/’本身就有取整功能(int / int),可是整数除法对负数的取整结果和使用的C编译器有关。