黑盒测试分为两种;
1. 单点测试
- 所谓单点测试就是,多组数据分组测试,每一次通过测试就能单独获得分值;
2. 多点测试
- 多点测试就是,多组数据一次性测试,如果错了则无分值,大多数OJ采用多点测试,因为这更能考验程序员的逻辑缜密性;
2.1 多点测试中的输入方式
while...EOF型:
黑盒测试中的数据都是凡在一个文件中的,我们可以根据scanf函数的返回值来判断是否到达了文件末尾; scanf的返回值就是成功读入的参数个数;读取失败的话返回-1,而C语言中使用EOF(End Of File)代表-1; 判断读取失败的语句:
while((scanf("%d",&n)!=EOF){...}
在黑框里输入数据时,不会触发EOF状态,如果想要在黑框中手动触发EOF,可以按<Ctrl+Z>组合键; 这时屏幕会出现一个^Z,按<Enter>后就可以结束while了; 注意: 如果是输入字符串,则可以使用scanf和gets 代码如下:
while(scanf("%s",str)!=EOF){...} while(gets(str)!=NULL){...}
2.while...break类型:
利用if结合break跳出循环
3.while(T--)类型:
这种情况一般题目会给出一个T,直接用。
2.2 多点测试中的输出类型:
- 正常输出
- 每组数据输出后都额外加一个空行
- 两组输出数据之间有一个空行,最后一组数据后无空行