四条用例,四类输入

👁️ 1 人浏览 💬 0 人评论 ❤️ 添加收藏

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 判题机上没有测试框架,所以这一节用一份**最小的脚手架**:一个 CHECK 宏,数着"跑了几条、过了几条、挂了几条"。框架再花哨,核心也是这三个数。

#include <iostream>
#include <stdexcept>

/* 一份最小的测试脚手架:不用任何框架,跑了几条、过了几条、挂了几条 */
static int ran = 0, passed = 0;
#define CHECK(cond) do { ran++; if (cond) passed++; } while (0)

static int div_of(int a, int b) {
    if (b == 0) throw std::invalid_argument("zero");
    return a / b;
}

static int throws_on_zero() {
    try { div_of(1, 0); } catch (const std::invalid_argument &) { return 1; }
    return 0;
}

int main() {
    CHECK(div_of(10, 2) == 5);      /* 正常 */
    CHECK(div_of(0, 3) == 0);       /* 边界:被除数是 0 */
    CHECK(div_of(-6, 3) == -2);     /* 边界:负数 */
    CHECK(throws_on_zero() == 1);   /* 异常路 */

    std::cout << ran << "/" << passed << "/" << (ran - passed) << "\n";
    return 0;
}
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论