五.答案检查器
本文将引导您写一个自定义的checker(chk.cpp)。
按照套路,uoj的校验器也应该使用testlib编写。
下面是A+B Problem的校验器:
#include "testlib.h"
int main(int argc, char* argv[])
{
registerTestlibCmd(argc, argv);
int pans,jans;
pans=ouf.readInt(); // 读取选手输出
jans=ans.readInt(); // 读取答案
if (pans == jans)
quitf(_ok, "Correct.");
else
quitf(_wa, "WA! expect=%d recieve=%d", jans, pans);
}
在调用registerTestlibCmd之后,我们可以使用下面的三个流:
inf : 输入数据
ouf : 选手输出
ans : 标准输出
从流中读取数据的方式,和【数据检验器】一致。
如果程序AC或者爆零,可以使用quitf()。但是如果想给选手部分分,使用下面的代码:
quitp(ceil(100.0 * p / a) / 100, "QAQ");
标签:pans,检查,int,quitf,jans,选手,答案
From: https://www.cnblogs.com/zhangyuhao111/p/18223097