C 语言的求模运算符 %

求模运算符 % modulus operator

只用于整数。

结果是左侧整数除以右侧整数的余数 remainder

#include<stdio.h>

int main(void)
{
	int a = 8;
	int b = 3;
	printf("8 %% 3 = %d\n", a % b);

	return 0;
}

结果:

8 % 3 = 2

求模运算符常用于控制程序流。

程序示例:

// 输入秒数,将其转换为分钟数和秒数

#include<stdio.h>
#define SEC_PER_HOUR 60

int main(void)
{
	printf("Enter the seconds (Enter q to quit): ");
	int seconds = 0;
	int min = 0;
	while (scanf("%d", &seconds) == 1)
	{
		min = seconds / SEC_PER_HOUR;
		seconds = seconds % SEC_PER_HOUR;
		printf("minutes = %d, seconds = %d.\n", min, seconds);
		printf("Enter the seconds (Enter q to quit): ");
	}

	return 0;
}

结果:

Enter the seconds (Enter q to quit): 121
minutes = 2, seconds = 1.
Enter the seconds (Enter q to quit): 23
minutes = 0, seconds = 23.
Enter the seconds (Enter q to quit): q

负整数求模

自从 C99 规定负整数除法是趋零截断后,负整数求模也只有一种结果。

负整数求模的结果的正负和第一个整数相同。

程序示例:

#include<stdio.h>

int main(void)
{
	printf("-11 %% 5 = %d\n", (- 11) % 5);
	printf("-11 %% -5 = %d\n", (-11) % -5);
	printf("11 %% -5 = %d\n", 11 % -5);
	printf("11 %% 5 = %d\n", 11 % 5);

	return 0;
}

结果:

-11 % 5 = -1
-11 % -5 = -1
11 % -5 = 1
11 % 5 = 1
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值