



同学们,前面我们编写的每个程序,都只需要处理一组输入数据。以“ a + b ”问题为例,程序运行时,输入 a 和 b 的值,程序计算并输出结果后,程序就结束了,如图1.1所示。
图1.1 单组输入数据的“ a + b ”问题
但有的时候,程序需要处理多组输入数据。以本章案例1~案例3中的“ a + b ”问题为例,输入数据有多行,每一行都是一组输入数据,为两个正整数 a 和 b ,对每组输入数据,程序要计算并输出结果。
引入多组输入数据,主要有以下两个目的。
(1)充分评测程序的正确性。虽然程序设计题目可以设计10个甚至20个测试点,但如果每个测试点只有一组输入数据,可能无法测试到程序的各个方面,导致一个不是完全正确的程序也能通过所有测试点的评测。但是,如果每个测试点包含多组输入数据,比如一个测试点包含1000组输入数据,那么这种方式就能更充分地评测程序的正确性。
(2)提高测试算法效率的灵活性。假设一道程序设计题目有两种求解算法,对同一组输入数据,算法A处理完毕需要10ms,算法B需要100ms。如果一个测试点只有一组输入数据,因为测试点的时间上限往往是1s,因此,这2个算法都能通过评测。但是,如果一个测试点包含50组同等规模的输入数据,算法A能在1s内运行完毕,算法B就不行了。也就是说,如果一组输入数据不足以区分多个算法的效率,我们可以在测试点中包含多组输入数据,从而提高测试算法效率的灵活性。