POJ 入门
Posted cymwill
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 入门相关的知识,希望对你有一定的参考价值。
先复习一下C的一些基本概念
1、C标准化输出:scanf
int m,n; scanf("%d%d",&n,&m);
实际上scanf是有返回值的,且返回值的类型为int,为输入的个数。如:
int m,n; printf("%d", scanf("%d%d",&n,&m) ); //输入 12 56 //输出 2 //输入 2 a a输入失败 //输出 1 //输入 a 5 a输入失败,则后面的也失败,故输出为0 //输出 0
scanf还有一个返回值EOF(即-1,符号常量),代表输入数据已经结束,如:
#include <iostream> using namespace std; int main() { int a,b; while(scanf("%d%d",&a,&b) != EOF){ printf("%d ",a+b); } return 0; }
在Windows下,按Ctrl+z,再按回车即可结束输入。
2、C++的标准化输出:cin
cin表达式的值,只能为true(成功读入所有变量) 和false
对应的一直输入为:
#include <iostream> using namespace std; int main() { int a,b; while(cin>>a>>b) // 注意这里不能加;否则不执行后面的 { cout << a+b << endl; } return 0; }
Windows停止同按Ctrl+z 回车
例如:输入若干个(不知道多少个)正整数,输出其中的最大值
#include <iostream> using namespace std; int main() { int a,mx=0; while(scanf("%d",&a) != EOF){ if (a>mx){ mx = a; } printf("%d ",mx); } return 0; }
3、用freopen重定向输入
调试程序时,每次运行程序都要输入测试数据,太麻烦
可以将测试数据存入文件,然后用freopen将输入由键盘重定向为文件,则运行程序时,就不需要输入数据了。:
#include <iostream> using namespace std; int main() { freopen("E:\\CodeBlocks\\Project_\\POJ\\test1\\input.txt","r",stdin); // \\为转义 且注意交到oj上的时候注意把它注释掉 // 此后所有输入都来自文件 input.txt int a,mx=0; while(scanf("%d",&a) != EOF){ if (a>mx){ mx = a; } } printf("%d ",mx); return 0; }
input文件为:
运行结果为:
以上是关于POJ 入门的主要内容,如果未能解决你的问题,请参考以下文章