黑盒测试
刷题网站常用的是黑河测试,系统后台准备若干组输入数据,让提交程序取运行这些数据,看输出的结果是否与正确答案完全相同。
黑盒测试分为单点测试和多点测试
单点测试
系统判断每组数据的输出结果是否正确,正确则该组数据通过测试,用户可获得该组数据的分值。
#include<stdio.h>
int main(){
int a,b;
// 这里推荐如果输入是 1空格2这样的形式,scanf也保持 %d空格%d的格式,逗号之类的同理,保持一致。怕出现不必要的问题。我用vscode写代码遇到过这些问题!
scanf("%d %d",&a,&b);
printf("%d===%d",a,b);
}
多点测试
要求程序一次性运行所有的数据,所有输出结果完全正确这次才算通过;只要有一组数据输出错误,得分都是0分。PTA平台用的单点测试!
多点测试代码模板
void fn2(){
int a, b;
// 获取输入结束时(就是读不到数据,读入数据失败),scanf会返回EOF。EOF是一个数值
// scanf("%d %d", &a, &b)成功读入两个数据会返回2.读入失败时会返回-1,C语言中用EOF表示-1
while (scanf("%d %d", &a, &b) != EOF){
// 处理数据
printf("%d %d", a, b);
}
}
//关于EOF的测试
int main()
{
printf("%d", EOF);
}
PS:正常我们写代码,在控制台输入数据是不会触发EOF的,可以用快捷键ctrl+Z,控制台出现^Z然后按回车的方式触发。不过我习惯直接Ctrl+C终止程序。
参考书籍:算法笔记