试一下除法和取模运算符
示例代码
#include <stdio.h>
int main(void)
{
int cookies = 45;
int children = 7; // 小孩数量
int cookies_per_child = 0; //每个小孩的饼干数 给一个初始化值0
int cookies_left_over = 0; //分完后剩下的
cookies_per_child = cookies/children; //计算每个孩子得到的饼干数
//C语言里面 两个整数相除 结果还是整数 如果结果是小数 它会只保留整数部分 45/7=6.4xxxx
//去掉小数 则=6
printf("你有%d个孩子和%d个饼干\n",children,cookies);
printf("给每个孩子%d个饼干\n",cookies_per_child);
cookies_left_over = cookies % children; //还剩多少 就是取余数
printf("最后还剩%d块饼干\n",cookies_left_over);
return 0;
}Code language: PHP (php)
运行输出结果
你有7个孩子和45个饼干
给每个孩子6个饼干
最后还剩3块饼干
代码解析
| 变量名 | 初始值 | 说明 |
|---|---|---|
cookies | 45 | 饼干总数 |
children | 7 | 小孩数量 |
cookies_per_child | 0 | 每个小孩分到的饼干数 |
cookies_left_over | 0 | 分完后剩余的饼干数 |
除法 /:
cookies_per_child = cookies / children; → 45 / 7
C语言中两个整数相除,结果也是整数。如果结果是小数,只会保留整数部分,舍弃小数。
45 / 7 = 6.428...,截断小数部分后结果为 6。
取模 %:
cookies_left_over = cookies % children; → 45 % 7
取模运算符计算的是两个整数相除后的余数。
45 ÷ 7 = 6 余 3,所以结果为 3。
核心要点
- 整数除法截断:两个整数相除,结果自动舍去小数部分,只保留整数商。不会四舍五入。
- 取模运算:
a % b得到a除以b的余数。仅适用于整数操作数。 - 两者配合:
/得到商,%得到余数,常用于平均分配类问题(如分饼干、分组的场景)。