ACM题目中输入数据的处理(C语言版)见:http://blog.csdn.net/sxhelijian/article/details/8978794
ACM竞赛题目的输入数据常要求有多组,并且格式多种多样,这是初次登OJ平台的同学的一个障碍。实际上,这些格式可以归为固定的几种类型,本文介绍各种类型的处理方法,以帮助同学们克服这些障碍。
实际上,这些模式不仅是OJ平台上做题的需要。在平时的自由编程练习中,也可以自行使用这些模式,以提高调试程序的效率。对程序测试的意识也将在此过程中得到提升。Description 计算 a+b Input 两个整数 a,b Output a+b的值 Sample Input 1 2 Sample Output 3
#include <iostream> using namespace std; int main() { int a,b; cin >> a >> b; cout << a+b << endl; //对其他题目,换成要求的复杂处理与输出 return 0; }
Description 计算 a + b Input 多组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行 Output 每组的两个整数(a和b)求和并输出,每组的求和结果独占一行 Sample Input 1 5 10 20 400 516 Sample Output 6 30 916
#include <iostream> using namespace std; int main() { int a,b; while(cin >> a >> b) { cout << a+b << endl; } return 0; }
说明1:当读到输入结束时,cin >> a >> b返回 0,循环也结束。
说明2:在调试程序时,键盘输入的数据,用CTRL-Z(即按住CTRL键不放,再按下Z)组合作为输入结束,此谓键盘输入设备的“文件末尾”。
Description 计算 a + b Input 第一行是数据的组数N,从第二行是N组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行 Output 每组的两个整数(a和b)求和并输出,每组的求和结果独占一行 Sample Input 2 1 5 10 20 Sample Output 6 30
#include <iostream> using namespace std; int main() { int a, b, n; cin >> n; for(i=0;i<n;i++) { cin >> a >> b; cout << a + b << endl; } return 0; }
Description 计算 a + b Input 多组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行。当输入为 0 0 时,输入结束。 Output 每组的两个整数(a和b)求和并输出,每组的求和结果独占一行。 Sample Input 1 5 10 20 0 0 Sample Output 6 30
#include<iostream> using namespace std; int main() { int a ,b; while(cin>>a>>b&&(a||b)) { cout<<a+b<<endl; } return 0; }
freopen("input.txt","r",stdin); //设置输入和输出文件重定向后,原先从键盘(标准输入的默认设备)接受的输入,将统统从文件读取input.txt读取,这就是重定向。程序可以写作:
#include<iostream> #include<cstdio> using namespace std; int main() { freopen("input.txt","r",stdin); //只加这一句输入将被重定向到文件input.txt int a,b; cin>>a>>b; cout<<a+b<<endl; return 0; }于是,在运行程序前,将本该由键盘输入的数据,写到文件input.txt中。而在运行程序时,数据将不再需要人去输入。那个快,很享受。
除了删除那一行,还有一种简单的做法是,提交前将这一行前加上注释符"//",效果是一样的。
#include<iostream> #include<cstdio> using namespace std; int main() { //freopen("input.txt","r",stdin); //只加这一句输入将被重定向到文件input.txt int a,b; cin>>a>>b; cout<<a+b<<endl; return 0; }
ACM题目中输入数据的处理(C语言版)见:http://blog.csdn.net/sxhelijian/article/details/8978794
==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章分类目录(不定期更新) ==|
|== C++ 课堂在线专栏 贺利坚课程教学链接(分课程年级) ==|
======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======