新闻详情

新闻详情

首页 / 资讯中心 / 详情

C语言取余运算符 %

发布时间:2026/10/1 9:38:39来源:尧图网络
C语言取余运算符 %
一、% 基础语法与核心规律1. 使用限制% 只能用于整型int、char、short、long。浮点型不能使用 %float、double 取模需要用 math.h 的fmod()。除数不能为 0运行直接崩溃。2. 余数符号终极规律重点不用死记数学公式只记一句话余数的正负永远跟【被除数】一致。示例一眼看懂13 % 5 3 // 正 % 正 正 -13 % 5 -3 // 负 % 正 负 13 % -5 3 // 正 % 负 正 -13 % -5 -3 // 负 % 负 负3. 负数余数转正通用代码工程必备循环队列、环形下标、坐标计算必须要非负余数固定写法int mod a % n; if (mod 0) mod n;二、% 的四大核心实战用途最有价值部分场景一配合 rand() 做区间截断2048游戏核心1. 原理任意非负数x % N结果一定落在0 ~ N-1。作用把超大的随机数强行压缩到我们想要的范围。2. 重要硬性规则90%新手出错rand() 必须搭配 srand()否则永远固定随机序列main 开头只写一次srand((unsigned)time(NULL));3. 4*4 棋盘标准坐标写法行业规范int row rand() % 4; int col rand() % 4;4. 概率控制你的经典代码70%出230%出4// 0、1、2 出430% 3~9 出270% int val rand() % 10 2 ? 2 : 4;5. 【商用稳定版】随机生成方块解决重复抽下标、死循环新手写法while(1)rand()%4会疯狂重复抽到已占用格子。 正规项目先收集所有空位再随机挑选。#define SIZE 4 int grid[SIZE][SIZE] {0}; struct Pos { int r; int c; }; void spawnNum(void) { struct Pos blank[16]; struct Pos temp; int cnt 0; // 1. 遍历收集所有空白格子 for (int i 0; i SIZE; i) { for (int j 0; j SIZE; j) { if (grid[i][j] 0) { temp.r i; temp.c j; blank[cnt] temp; cnt; } } } if (cnt 0) return; // 2. 只在空位中随机绝对不重复、不浪费 int idx rand() % cnt; grid[blank[idx].r][blank[idx].c] rand() % 10 2 ? 2 : 4; }场景二循环顺序队列% 最巧妙不计数、不判断边界纯靠取模自动环形循环。核心优势数组末尾自动跳回下标0不用一堆 if 判断。#define MAXSIZE 4 typedef struct { int data[MAXSIZE]; int front; int rear; } SqQueue;环形指针移动核心代码rear (rear 1) % MAXSIZE; front (front 1) % MAXSIZE;判空、判满规则牺牲一个空位法队空front rear队满(rear 1) % MAXSIZE front场景三日常数值工具用法判断奇偶x % 2 0偶数判断倍数x % n 0能被 n 整除取个位num % 10一维下标转二维坐标棋盘、像素通用int idx rand() % 16; int row idx / 4; int col idx % 4;场景四周期性控制每隔 N 次执行一次代码for(int i 0; i 30; i) { if(i % 5 0) { printf(每5轮执行一次\n); } }三、% 必避的五大坑浮点不能用 %只能用 fmod()负数取余带负号环形运算必须转正rand() 不写 srand()全程伪随机、结果固定while 死循环随机下标极易卡顿、重复抽同一个位置rand()%N 概率轻微不均超高精度场景需要公式修正四、全文总结取余 % 是 C 语言性价比最高的运算符核心就两个神级用途数值区间压缩rand()%N做随机坐标、概率分配游戏必备环形边界自动化循环队列不写 if靠取模自动循环头尾辅以奇偶判断、数位提取、周期控制短小精悍、用处极广。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

浏览器AI抠图慢不慢,先看它跑在哪个后端 2026/10/1 10:23:05

浏览器AI抠图慢不慢,先看它跑在哪个后端

同事上周在群里吐槽我安利的网页抠图工具点一下要干等好几秒。我这边差不多是点完就出图。两台都是 Mac 上的 Chrome 打开同一个网页。我第一反应是他网不好,后来确认模型早就缓存过了、根本没在下载。真正的差别出在浏览器拿什么跑模型:一边走 WebGPU 用…

阅读更多 →
Oracle 11gR2 RAC OCR和votingdisk故障恢复案例 2026/10/1 10:23:04

Oracle 11gR2 RAC OCR和votingdisk故障恢复案例

ASM磁盘组冗余的三种类型:external、normal、high,这里恢复的是normal状态,模拟OCR磁盘或votedisk不可用时,RAC会出现什么现象?给出故障定位的整个过程。在11.2.0.3中表决盘是放到了ocr中,所以 OCR磁盘或votedisk不可用的两个实验…

阅读更多 →
地铁广告收费价格体系全解析:2026采购指南与比价攻略 2026/10/1 10:23:04

地铁广告收费价格体系全解析:2026采购指南与比价攻略

地铁作为城市核心公共交通场景,具备高客流、强沉浸、固定触达的传播特征,长期被品牌方视作线下品牌曝光、区域市场渗透的核心媒介。但传统地铁广告采购普遍存在报价不透明、渠道层级多、跨城市比价繁琐、上刊履约风险难管控等痛点。依托全国广告资源整合…

阅读更多 →
Astra 被搁置:Agent 侧怎么卡 scope、授权与行动披露 2026/10/1 10:22:58

Astra 被搁置:Agent 侧怎么卡 scope、授权与行动披露

本文面向正在搭建或运维 agent harness / tool-using coding agent 的软件与平台工程师。素材来自 2026-09-28 多家媒体对 OpenAI 搁置 GPT-6.1 Astra 发布计划的公开报道。文中严格区分「公开事实」与「作者架构建议」;不编造内部 eval 分数、官方安全计分卡或未公…

阅读更多 →
platform_bus_init / device_register / bus_register / device / of_platform_register_reconfig_notifier 2026/10/1 10:22:51

platform_bus_init / device_register / bus_register / device / of_platform_register_reconfig_notifier

platform_bus_init1. platform_bus_init 函数1.1 device_register 函数1.2 bus_register 函数1.3 of_platform_register_reconfig_notifier 函数1.4 device 结构体1. platform_bus_init 函数 通过early_platform_cleanup()函数,清理早期平台设备(将早期启…

阅读更多 →
XPath 选择器 2026/10/1 10:22:45

XPath 选择器

在上一篇名为《入门(基于)》的文章中, 当咱们讲解那个东西的入门知识的时候, 挖了好几个大坑, 其中一个就是这篇文章所讲的。在当今的Web自动化测试领域, XPath与CSS选择器的使用频率非常高。借助这两种工具, 测试人员能够非常准确地找到需要操作的页面元…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉