a/b 表示a除b,除出来默认是小数,但我猜你应该定义的是int x = a/b; 那么你说的7/2 本应该是3.5,回为x为整型,所以小数被截断,为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
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编译器有关。
取整函数是指不超过实数x的最大整数称为x的整数部分,记作[x]或INT(x)。该函数被广泛应用于数论,函数绘图和计算机领域。
定义:
不超过实数x的最大整数称为x的整数部分,记作[x]或INT(x)。
x-[x]称为x的小数部分,记作{x}。
(需要注意的是,对于负数,[x]并非指x小数点左边的部分,{x}也并非指x小数点右边的部分,例如对于负数-3.7,[-3.7]=-4,而不是-3,此时{x}=-3.7-(-4)=0.3,而不是-0.7.)
性质
性质1 对任意x∈R,均有x-1[x]≤x[x]+1.
性质2 对任意x∈R,函数y={x}的值域为[0,1).
性质3 取整函数(高斯函数)是一个不减函数,即对任意x1,x2∈R,若x1≤x2,则[x1]≤[x2].
性质4 若n∈Z,x∈R,则有[x+n]=n+[x],{n+x}={x}.后一式子表明y={x}是一个以1为周期的函数.
性质5 若x,y∈R,则[x]+[y]≤[x+y]≤[x]+[y]+1.
性质6 若n∈N+,x∈R,则[nx]≥n[x].
性质7 若n∈N+,x∈R+,则在 区间[1,x]内,恰好有[x/n]个整数是n的倍数.
性质8 设p为 质数,n∈N+,则p在n!的 质因数 分解式中的幂次为
p(n!)=[n/p]+[n/p 2]+….
1、可以用printf("%d",a/b);来取整数结果显示。
2、可以把a/b的结果赋给一个整型变量,int x=a/b;
3、可以使用类型符取整:x=int(a/b);或x=(int)(a/b);