1. 程式人生 > >牛客網輸入規範總結(c++部分)

牛客網輸入規範總結(c++部分)

注意:輸入的多組輸入,不是一組,已經猜了很多次坑了哦!

 

輸入

預先不輸入資料的組數

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

 

預先知道資料組數

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之後有空行

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;
}

 

 

處理細節和技巧

輸入

不用儲存所有組的輸入,讀一組算一組

“可惡”的字串——帶空白

  • scanf, cin之類都讀到空白結束
  • gets, cin.getline。再自己parse
  • 用scanf, gets代替cin

 

輸出

注意格式

  • 字母大小寫
  • 什麼時候換行
  • 輸出“case”後面有沒有“#”或者“:”之類。
  • 每行末尾有\n,但一般沒有空白
  • 用printf代替cout。

 

OJ常見狀態

  • 記憶體超限——使用記憶體過多
  • 返回非零——main函式返回了非零值
  • 浮點錯誤——除以零
  • 執行錯誤——指標亂指
  • 段錯誤——指標越界