C语言负数求余,求详解原理是什么

如题所述

第1个回答  2011-10-09
取余的函数定义 a%b = a - (a/b)*b

所以例如-7%5 = -7 - (-1)*5 = -2本回答被提问者采纳
第2个回答  2019-06-20

我只是来确认一下的结果的。不知道为什么那么多人踩!

IDE:codeblocks

被除数a/ 除数b = 商 r ... 模c

原理:首先,a的符号与c相同;其次,|c|<|b|;最后,满足a=br+c。

通过三个条件可反推出余数和商,本来负数的求模的物理意义就不是很大,但为了具有完备性,满足a=br+c,对付出求模必须进行一些条件约束,不然会有歧义。因此不同编译器的约束条件可能不同,但大多和gcc编译器这样进行。

C语言负数求余,求详解原理是什么
取余的函数定义 a%b = a - (a\/b)*b 所以例如-7%5 = -7 - (-1)*5 = -2

c语言中5%(-3) 和(-5)%(-3)的值是什么 求详解 还有为什么要这样解
5%(-3)的值是2,(-5)%(-3)是-2。因为%被俗称为“取余除”操作符,就是取被除数除以除数后的余数作为计算结果。既然结果是余数,那么余数的符号肯定是与被除数的符号相同了……

c语言求详解
现在n=2,while(n--)判断为真,n--后n=1 然后在printfn先自减1后输出,输出为0

C语言,求详解
因为c='a',所以a['d'-c]就是a['d'-'a'],字符'd'的值是100,字符'a'的值是97,所以a['d'-'a']就是a[100-97],也就是a[3],由于数组元素下标是从0开始,第一个元素是a[0],第四个元素就是a[3]了,a[3]不就是4吗?

c语言求详解
一、输入2时,c-'2'的值为0,程序执行case 0:case 1:case 2:后的语句,遇break;不再执行case 3:用后面的语句,因此输出66。二、输入4时,c-'2'的值为2,程序执行case 2:后的语句,遇break;不再执行case 3:用后面的语句,因此输出8。三、输入7时,c-'2'的值为5,程序执行default:后...

c语言求详解
printf("\\n%d %c %s %s",*q,q[3],q+3,q); \/\/同理……只是这里的q的值一直未那个无名字符串的首地址,而没有发生改变。\/\/所以q就是整个字符串的首地址,也是第0个元素的地址,*q就是第0个元素的值,用%d输出则会输出该字符对应的ADCII码值、\/\/q[3]的值为那个字符串的第三个元素...

c语言求详解
这段程序的输出结果是0。因为x=12,所以x>12不成立,因此三目运算符"?:"执行了符号":"后面的语句,即x-12,代入x=12,得0,最后,将0赋值给变量y,打印输出。

c语言求详细解释...急急急
p就是p所指向的内容,由于前面p指向了r所在的地址,那么*p就是r本身了,也就相当于变量r的值放回到r中 B 解释错误,不用仔细说明了吧 C 解释错误,不用仔细说明了吧 D double *p = &r,是指针p指向r所在的地址,也就是指针p里面存放的是r的地址,并不是r的地址赋值给了p所指向的存储单元,...

C语言中 P0=~(1<<K); 是什么意思??求详解
1<<k就是创建一个1, 移动到第k位 1<<2, 用四位二进制数表示就是0100,如果赋值给int, 值就是4 ~是反转的意思, ~0100就是1011 比如一个short, 1<<2就是0000000000000100 ~(1<<2)就是1111111111111011 由于最高位是1, 所以这个数字如果是signed,就是负数,unsigned,就是一个很大的正数 signed...

c语言 求详解
函数递归调用 功能是从a[n]累加到a[0]当主函数调用 f(x,3)返回为x[3]+x[2]+x[1]+x[0] = 7+5+3+1=16 于是 选D

相似回答