牛客网输入规范


一、输入

1.1 预先不输入数据的组数

while(cin>>a>>b){
    cout<<a+b<<endl;
}

1.2 预先知道数据组数

cin>>n;
for(int i=0; i<n; i++){
    int a,b;
    cin>>a>>b;
    cout<<a+b<<endl;
}

1.3 只有一组数据

cin>>a>>b;
cout<<a+b<<endl;

二、输出

2.1 不需要输出case数

cin>>n;
for(int i=0; i<n; i++){
    int a, b;
    cin>>a>>b;
    cout<<a+b<<endl;
}

2.2 需要输出case数

cin>>n;
for(int i=0; i<n; i++){
    int a, b;
    cin>>a>>b;
    cout<<"Case"<<i+1<<a+b<<endl;
}

2.3 每个case之后有空行

for(int i=0; i<n; i++){
    int a, b;
    cin>>a>>b;
    cout<<"Case"<<i+1<<a+b<<endl<<endl;
}

2.4 两个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;
}

三、处理细节和技巧

3.1 输入

不用保存所有组的输入,读一组算一组

“可恶”的字符串——带空白

  • scanf, cin之类都读到空白结束
  • gets, cin.getline。再自己parse
  • 用scanf, gets代替cin。

3.2 输出

  • 注意格式
  • 字母大小写
  • 什么时候换行
  • 输出“case”后面有没有“#”或者“:”之类。
  • 每行末尾有\n,但一般没有空白
  • 用printf代替cout。

四、OJ常见状态

  • 内存超限——使用内存过多
  • 返回非零——main函数返回了非零值
  • 浮点错误——除以零
  • 运行错误——指针乱指
  • 段错误——指针越界

猜你喜欢

转载自blog.csdn.net/CSDN_dzh/article/details/88372838
今日推荐