提问须知

本文档适用于在程序设计竞赛实训基地管理的即时通信系统群组中的任何提问。

一般注意事项

参阅群文件中 提问的智慧.pdf。

可以私信管理员,但管理员有权选择不回,或者在群里公开回答。

体育道德和学术道德规范

禁止问任何正在进行的比赛中的任何题目。违者直接移除出群, 且管理员有权将相关信息移送比赛组织方。

贴代码注意事项

本小节适用于所有“为什么我的程序崩溃/输出不符合预期”类型的问题。

首先删掉你程序里所有的非 ASCII 字符。然后打开 www.onlinegdb.com, 按下列步骤操作:

  • 如果你看左边栏不顺眼,点击形如 < 的按钮把它关掉。
  • 在右上角选择语言,C 就选 C,C++ 就选 C++ 14 或者 17, 不要选别的乱七八糟的东西。
  • 点击右上角的齿轮按钮,然后点击 Extra Compiler Flags 按钮, 输入 -Wall -Wextra -Werror=vla -g -fsanitize=address,undefined -fno-sanitize-recover,确认。然后点击 Done 按钮。
    • 如果你本地的编译器支持这些选项,就不需要用在线工具了, 本地编译时使用这些选项即可。
  • 把你的代码粘贴到上半部分的编辑器中。
  • 在下半部分,点击 input,在 Standard Input 那里选择 Text, 然后在下面出现的文本框里粘贴你要给你的程序输入的东西。
  • 点击左上角 Run 按钮。
  • 点击 input 右边的 stderr,根据里面的错误信息修改你的代码。
    • 编译错误的代码严禁拿来问人。
    • 尽量修改代码以避免编译警告,如果实在避免不了, 你要自己论证这个警告并未反映程序中实际存在的 bug。否则不许拿来问人。
    • 运行时,地址检查器或者未定义行为检查器报警 (警告信息通常包含 runtime error:) 的程序严禁拿来问人。
  • 看一下 stdout 里面的东西和你的预期,以及你本地的输出是否相同。 如果不同的话,问人的时候记得说明。

超过 5 行的代码必须用 paste.mozilla.org 或者类似的在线工具粘贴,然后把代码链接发到群里。 不要恶意压行 (按 Linux 内核代码规范使用 clang-format 格式化后超过 5 行 就算超过 5 行)。

请贴可以直接编译运行的代码,不要让别人浪费时间给你补头文件之类的东西。

不按本节注意事项贴代码的,第一次口头警告,第二次禁言,第三次移除出群。