用%这个算符,意思是取余数
比如:
a=2;
b=3;
那么b%a的结果就是3除以2的余数,结果是1;
参考程序段:
main()
{
int i,n;
printf("input your number: \n");
scanf("%d",&n);
for(i=1;i
{
if(n%i) continue;
printf("%d ",i);
}
}
扩展资料:
余数有如下一些重要性质(a,b,c 均为自然数):
(1)余数和除数的差的绝对值要小于除数的绝对值(适用于实数域);
(2)被除数 = 除数 × 商 + 余数;
除数=(被除数 - 余数)÷ 商;
商=(被除数 - 余数)÷除数;
余数=被除数 - 除数 × 商。
参考资料来源:百度百科-余数
(1)计算的时候,c语言中,会按一定顺序将类型转换后再计算。但是结果是保留自身值,之后如果赋值给其他一个变量,那么这个变量会将得到的值再转换成与自身类型相符的值。题中, m=1/2,因为等式右边计算的是两个整形变量相除(类型不需要转换),根据c语言的“/”运行可以知道,这个是取整计算,结果是0,所以m=0
(2)因为m ,n都是浮点型,所以,“/”计算是求浮点类型的值,也就是和我们平常数学里的除号运算是一样的,也就是1/2=0.5,或者也可以写成1.0/2.0=0.5,所以,z=0.5
第一种:
float m;
m=1/2;
1,为整数,2为整数, 1/2 = 0 ,整数除整数,按照C语言规定,只保留整数位
m = (float)0 = 0.000000 , 将整数0转化为浮点数0.000000
第二种
m,n 已经是float, 所以是float类型的除法,当然是 0.5
1、C语言中和除法相关的运算符有两个"/"整除运算符和"%"取余运算符。
2、整除就是求商,取余就是求余数,这是两者最本质的区别,需要注意的是在C语言%取余运算符只能操作整型数据对象。
因为第一种,默认1和2是整数,是按照整数运算的,得到的也是整数,后来整数转化为float类型时即为0.00,即1/2=0 1%2=1的道理 而第二种中申明了为float类型的,就按照float算数运算,相当于得到的也是float类型。说到底就是第一种除法运算得到的是整数,后来转化为float类型赋值给m,第二种除法运算得到的是float类型,不需要转化