黑盒测试分为两种;

1. 单点测试

  • 所谓单点测试就是,多组数据分组测试,每一次通过测试就能单独获得分值;

2. 多点测试

  • 多点测试就是,多组数据一次性测试,如果错了则无分值,大多数OJ采用多点测试,因为这更能考验程序员的逻辑缜密性;

2.1 多点测试中的输入方式

  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 多点测试中的输出类型:

  1. 正常输出
  2. 每组数据输出后都额外加一个空行
  3. 两组输出数据之间有一个空行,最后一组数据后无空行

3. 习题:

http://codeup.cn/contest.php?cid=100000574