CSP分数出来了,有多少同学因为没用cstdio爆了0?

最近偶尔看到群里在讨论明明DevC++下测试可以运行的程序为何CCF测出来是0分呢?

当然原因可能有很多,我们这里仅仅来讨论其中一种情况,那就是因为缺少freopen的头文件而爆0的情况,缺少头文件显然是会CE(Compile Error),连验证程序的正确性的机会都没有。

#include<iostream>
#include<string>
using namespace std;
int main()
{
  freopen("number.in","r",stdin);
  freopen("number.out","w",stdout);
  string s;
  long long ans=0;
  cin>>s;
  for(int i=0;i<s.size();i++)
  {
    if(s[i]=='1')ans++;
  }
  cout<<ans;
  return 0;
}

这是从浙江赛区CSP-J选手中,随机找的因为这个原因爆0的程序(oitiku.com上测试也是CE,相信大家已经深深感受到了NOIP信息网估分的强大,打CALL)

CE的原因是缺少头文件,为何DevC++能编译通过呢?我们尝试了不同版本的G++在Linux下进行程序编译,发现G++4.8.4版本编译会缺少头文件而编译过不去,但是4.9.2以及更高的版本编译是过的去。另外我们也应该注意到到DevCpp的编译选项那边编译会帮我们自动连接了很多include文件。

的确考试时候的工具可以通过编译,到了评测就CE,而且还是g++版本的问题,的确会让人不爽。有兴趣的老师可以尝试更高版本的g++,根据CCF提供的终端运行命令行尝试对爆0同学程序的编译。

在g++ 4.8.4版本下对于freopen,可以使用的头文件有#include <bits/stdc++.h>,  #include <cstdio>,#include <stdio.h>,#include<fstream>

#include <bits/stdc++.h>  “万能头文件”,一劳永逸,基本上竞赛所要使用的大部分库都被囊括其中,以前我们是这样的:

#include <iostream> 
#include <cstdio> 
#include <fstream> 
#include <algorithm> 
#include
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值