多组输入
多组输入要求你处理到文件的结尾(EOF,end of file)。
也就是说,输入完一组数据以后,你的程序不能结束,而应该等待下一组输入。
对于每一组输入,应当在循环体内完成对这一组数据的处理,并按照格式要求输出答案。
比如HDU1000
它要求你处理到文件的结尾,并且对于每一组输入,在一行中输出答案,所以程序应该这样写:
#include <stdio.h> int main() { int a, b; while (scanf("%d%d", &a, &b) != EOF) { //在这两个大括号之间,处理数据并输出答案 printf("%d\n", a + b); } return 0; }
这样的题目也是用多组输入的:
只要题目中说了多组输入,或者说了要求处理到文件的结尾,都应该使用这样的格式。
如果暂时不明白也没关系,先用上再说。
T组输入
T组输入是指,输入数据会指定输入的组数,你的程序应当读入T后,执行T次对数据的读入,处理和输出。
比如HDU1090
所以下面的代码可以满足要求:
#include <stdio.h> int main() { int a, b, T; scanf("%d", &T); while (T--) { scanf("%d%d", &a, &b); printf("%d\n", a + b); } return 0; }
如果这样写你看不懂的话,这个循环也可以这样表示:
#include <stdio.h> int main() { int a, b, T; scanf("%d", &T); for (int i = 0; i < T; i++) { scanf("%d%d", &a, &b); printf("%d\n", a + b); } return 0; }
比如这题,就是比较典型的T组输入