定义
OJ(online judge) 是在线判题系统
工作方式
- 用户提交程序
- 后台编译程序,执行编译的程序,并将结果放入文件
- 通过文件比较用户输出和标准答案
- 标准的输入与输出
输入格式
- 预先不确定输入数据的组数(读入文件的结尾)
while(cin >> a >> b)
{
cout << a + b
}
- 预先输入数据的组数(读取数据的组数然后循环)
cin >> n;
for(int i = 0; i < n; i++)
{
int a, b;
cin >> a >> b;
cout << a+b << endl;
}
- 只有一组数据
cin >> a >> b;
cout << a + b << endl;
输出格式
- 不需要输出case 的数目
cin >> n;
for(int i = 0; i < n; i++)
{
int a, b;
cin >> a >> b;
cout << a+b << endl;
}
- 需要输出case的数目
cin >> n;
for(int i = 0; i < n; i++)
{
int a, b;
cin >> a >> b;
cout << "case" << i+1 << a+b << endl;
}
- 每一个case之后有空行
cin >> n;
for(int i = 0; i < n; i++)
{
int a, b;
cin >> a >> b;
cout << "case" << i+1 << a+b << endl << endl;;
}
- 两个case之间有空行(第一个前面没有空行)
cin >> n;
for(int i = 0; i < n; i++)
{
int a, b;
cin >> a >> b;
if(i > 0)
{cout << endl;}
cout << “case” << i+1 << a+b << endl << endl;;
}
“`
处理所有的细节
- scanf,cin ,nextInt都是读到空白或者制表符结束的
- gets,cin.gets,nextline,来读取字符串,可以读取空白的字符,
- 尽量用scanf,gets代替cin读取数字,用printf代替cout
常见的错误
- 格式错误:多输出空白等
- 运行超时:程序太慢
- 返回非零:main函数返回值应该返回0,而不是非0值
- 输出超限:输出太多
- 运行错误:指针乱指,地址指向错误
- 段错误:指针越界