C语言程序设计中运算符%(求余运算符)怎样使用?

C语言程序设计中运算符%(求余运算符)怎样使用?,第1张

%是求余运算符,也叫模除运算符,用于求余数

%要求两个 *** 作数均为整数(或可以隐式转换成整数的类型)。

标准规定:

如果%左边的 *** 作数为负数时,则模除的结果为负数或者0,

如果%左边的 *** 作数为正数时,则模除的结构为正数或者0。

示例代码:

c 为字符类型,其235对应二进制位0xFD,也就是-3的补码形式。则c变换为int 为-3;

下表显示了C语言支持的所有算术运算符。假设变量A的值为10,变量B的值为 20,则:

实例

当上面的代码被编译和执行时,它会产生下列结果:

你的注释好像不对啊。
a = f[0] + f[1] + f[2] + f[3]; //9+19+29+39=96,没问题
a = a / f[0]; //a=10,OK,小数去掉
b = f[0] + f[2] + f[3]; //9+29+39=77,OK
b = b / a; //b=7,OK,小数去掉
c = (b f[1] + a) / f[2]; //c=719/29=4,这里应该是c=(719+10)/29=4,结果倒是不变的,小数去掉
d = f[(b / c ) % 4]; //d= 4,这里不对,d=f[(7/4)%4]=f[1%4]=f[1]=19,这里的%表示取余数,即1除以4余数是1;
if(f[(a + b + c + d) % 4] > f[2]) //6>29,f[(a+b+c+d)%4]=f[(10+7+4+19)%4]=f[40%4]=f[0],所以是判断9>29?
printf("%d\n", a + b);
else
printf("%d\n", c + d); //4+4=8,4+19=23
return 0;

运算符%的运算结果就是左 *** 作数除以右 *** 作数后所得的余数。
下面举一个通例来说明:
a%b 假设a/b=c(余数为d)
对于上面的例子,左 *** 作数为a,右 *** 作数为b,那么a%b后的结果为d。
值得注意的是运算符%的左右 *** 作数必须都为int型。
运算符%最基本的应用就是判断奇偶性(a%2),还有就是用在循环链表和循环队列中,用于判断节点的位置。

>

如果 *** 作数是整数,那么就是整除,否则就是浮点除,求余的符号是%。

1、通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用'%'符号表示取模或者求余运算。在这里要提醒大家要十分注意当前环境下'%'运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的。

2、求模运算和求余运算在第一步不同: 取模求余运算在取c的值时,向0 方向舍入(fix()函数); 而求余取模运算在计算c的值时,向无穷小方向舍入(floor()函数)。

3、当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此结果一致。但是当符号不一致的时候,结果不一样。具体来说,求模运算结果的符号和b一致,求余运算结果的符号和a一致。

4、在C语言中,%符号表示的是求余运算,在Python脚本中,%表示的是取模。

%就是取余数运算,也就是模运算(mod)。
设a,b是两个整数,a%b的结果就就是a÷b得到的余数
例如5%3=2 (商1余2) 9%4=1 (商2余1) 3%7=3 (商0余3)
C语言中求余数直接用双目运算符%,如求a除以b的余数可表示为a%b
注意:C语言中的运算符%的两个 *** 作数必须为整形,不能为浮点型或其他结构体类型,否则编译器会提示错误。
示例代码:
#include <stdioh>
int main()
{
int a=5, b=3, c;
c=a%b; //将a除以b的余数赋值给c
printf("%d",c);
return 0;
}
/
输出:2
/


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12719214.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-27
下一篇2025-08-27

发表评论

登录后才能评论

评论列表(0条)

    保存