注意:輸入的多組輸入,不是一組,已經猜了很多次坑了哦!
輸入
預先不輸入資料的組數
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函數傳回了非零值
- 浮點錯誤——除以零
- 運作錯誤——指針亂指
- 段錯誤——指針越界