OJ的输入输出问题
2016-03-03 13:58
225 查看
OJ的输入输出问题
标签: 博客 工具1.引言
以前接触的OJ都是直接编写一个成员函数,不需要考虑读入数据的问题。今天做了某公司2016年研发工程师的编程题,题倒是不难,但是需要考虑读入数据的问题,然后就跪在了这里……好久没接触数据的输入问题,查阅了一些资料,总结一下,以免以后再跪在这里,太委屈了。主要说一下C和C++的输入输出处理,其他语言对于输入输出的处理方法都是相通的。2.常见输入问题
均以求两个输入数据的和为例子讲解。2.1只有一组数据
解决方法:直接处理C
int a,b; scanf("%d%d", &a,&b); printf("%d\n", a+b);
C++
int a,b; cin>>a>>b; cout<<a+b<<endl;
2.2有多组数据,但是告诉了数据个数
解决方法:先读入数据个数,然后根据数据个数读入数据C
int a,b,n; scanf("%d", &n); for (int i=0; i<n; i++) { scanf("%d%d", &a,&b); printf("%d\n", a+b); }
C++
int a,b,n; cin>>n; for (int i=0; i<n; i++) { cin>>a>>b; cout<<a+b<<endl; }
2.3有多组数据,且不知道数据数量
解决方法:不断循环读入数据,直到结尾C
int a,b; while (scanf("%d%d", &a,&b)!=EOF) printf("%d\n", a+b);
C++
int a,b; while (cin>>a>>b) cout<<a+b<<endl;
2.常见输出问题
输出问题主要是输出格式上的问题,最常见的就是只要求输入一个计算结果,且单独成行。具体按照什么样的格式输出,题目都会有要求或者示例,其它常见的输出要求有加逗号,换行两次,加特定字符(注意大小写)等等。输出之所以这么严格的要求格式,是因为判题的结果是我们计算的结果和标准结果相比较产生的,只要不一样就是错。3.其它OJ补充
不需要保存输入的数据,读一组,算一组,输出一组所有的输入输出都是标准输入输出,不需要对文件进行操作
当运行时间过长时,可以用
scanf,
gets代替
cin,
printf代替
cout,快
main函数为
int型,返回值必须为
0
使用指针之前先检测是不是为
NULL,否则会出现段错误
递归函数没有终止条件的话也会出现段错误
相关文章推荐
- C语言snprintf()函数:将格式化的数据写入字符串—sprintf()
- 部分便签的元数据已被损坏 便签已将其恢复为默认值
- 设计模式之门面模式
- ISO8583数据类型
- idea 15的破解
- shape和selector简介
- opentsdb 编译和安装
- 一个规范的自定义View——Android开发艺术探索笔记
- Maven坐标详解
- Android_Dialog_设置Dialog窗体的大小
- html5 学习笔记--jikexueyuan的视频看完后的碎碎念(与HTML4相比的改变)
- HBase简介(很好的梳理资料)
- ISO8583协议
- Oracle PL/SQL中的循环处理(sql for循环)
- ForwardBase ForwardAdd有效条件
- android调用相机拍照后,导致OOM
- 旋转数组的最小值
- CodeFirst(反射+特性)
- SQL Server中的20个系统变量
- 集合与可变集合排序(自己使用)