当前位置: 首页 > news >正文

2025.7.27

看了好一会才理解了题目的意思

给出的三个整数不一定是按照ABC排序的, 所以我们要先排序, 排好序之后才对应ABC, 然后才能根据ABC或者其他排序的要求进行输出

写好之后运行出现问题, 我运行得到的是 0 3 5

后来发现是因为我字符串定义的是char regex[3], 是这里出了问题, 长度要定义为4

直接输入字符串需要定义为 char regex[4],但是循环输入单个字符时可以定义为 char regex[3]

为什么直接输入 3 个字符需要定义为 char regex[4]

  • 当你用 scanf("%s", regex) 输入字符串时,系统会自动在字符串末尾添加一个 '\0' 作为结束符。
  • 如果你需要存储 3 个有效字符(比如 "ABC"),实际需要的存储空间是:3 个字符 + 1 个结束符 '\0',共 4 个字节。
  • 若定义为 char regex[3],输入 3 个字符时,'\0' 会被写到数组之外的内存,导致 缓冲区溢出(可能引发程序崩溃或数据错误)。

为什么循环输入单个字符时可以定义为 char regex[3]

  • 如果你通过循环逐个输入字符(比如 for(i=0;i<3;i++) scanf("%c", &regex[i])),本质上是在操作 字符数组,而非 C 语言标准意义上的“字符串”。
  • 这种情况下,你没有依赖 '\0' 作为结束标志,而是通过循环索引(i<3)来控制字符数量,因此 3 个元素的数组刚好能存 3 个字符。

把这个改好之后就成功了

http://www.dtcms.com/a/301002.html

相关文章:

  • Java面试题及详细答案120道之(061-080)
  • C++算法竞赛篇(六)一维数组题型讲解
  • 【工具】python汇总发票(含源码)
  • Java排序算法之<希尔排序>
  • 7月27日星期日今日早报简报微语报早读
  • GitHub 趋势日报 (2025年07月25日)
  • Linux 系统网络配置及 IP 地址相关知识汇总
  • STM32 I2C通信完整教程:从协议原理到硬件实现
  • 一文快速了解Docker和命令详解
  • 模拟实现python的sklearn库中的Bunch类以及 load_iris 功能
  • 文件权限标记机制在知识安全共享中的应用实践
  • minio 对象存储
  • java的break能加标签,return可以加标签吗
  • 从一副蓝牙耳机里get倍思的“实用而美”
  • Python 程序设计讲义(23):循环结构——循环控制语句 break 与 continue
  • 背包DP之多重背包
  • 边缘提取算法结合深度学习的肺结节分割预测
  • 「日拱一码」040 机器学习-不同模型可解释方法
  • 【机器学习】第七章 特征工程
  • 【机器学习-3】 | 决策树与鸢尾花分类实践篇
  • 探索 Linux 调试利器:GDB 入门与实战指南
  • 在分布式的远程调用中proxy和stub角色区别
  • C++ 多线程 std::thread::get_id
  • 数独求解器与生成器(回溯算法实现)
  • Python|OpenCV-实现对颜色进行检测(22)
  • PandasAI连接LLM进行智能数据分析
  • qt常用控件-06
  • 【人工智能】【Python】各种评估指标,PR曲线,ROC曲线,过采样,欠采样(Scikit-Learn实践)
  • PAT 甲级题目讲解:1010《Radix》
  • Spring之【Bean的生命周期】