編譯錯(cuò)誤(Complie Error)
這說明你的代碼本身就沒有通過OJ的語法檢查猜敢,請(qǐng)根據(jù)OJ返回的錯(cuò)誤詳情修改你的代碼。
注意盒延,由于OJ采用和VC6.0不同的編譯器缩擂,以下幾點(diǎn)要求必須謹(jǐn)記:
- iostream頭文件不含.h(#include<iostream>)
- 主函數(shù)類型必須為整型(int main())
- 不可使用隨機(jī)數(shù)random()函數(shù),以及fflush()函數(shù)
答案錯(cuò)誤(Wrong Answer)
此類錯(cuò)誤常見于輸出的數(shù)據(jù)錯(cuò)誤了添寺,你所寫的程序必須要經(jīng)得起任何數(shù)據(jù)的測試才能算通過胯盯,而不是僅僅通過了樣例測試
運(yùn)行時(shí)錯(cuò)誤(Runtime Error)
此類錯(cuò)誤在運(yùn)行時(shí)產(chǎn)生,往往是由于在程序的運(yùn)行過程中出現(xiàn)了不可計(jì)算或不可操作的語句计露。比如0作為除數(shù)的語句博脑,以及對(duì)野指針進(jìn)行解引用賦值等等。出現(xiàn)這類錯(cuò)誤你需要對(duì)可能出現(xiàn)錯(cuò)誤的地方進(jìn)行定位票罐,然后排查錯(cuò)誤叉趣。
例如,以下的代碼會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤
#include <iostream>
using namespace std;
int main(){
int a=1,b=0;
printf("%d", a/b); //0作為除數(shù)
return 0;
}
格式錯(cuò)誤(Presentation Error)
此類錯(cuò)誤常見于輸出了錯(cuò)誤數(shù)量的空格或者換行胶坠。建議在做題之前先看好題目要求君账,以及觀察樣例輸出的格式沈善,確保空格數(shù)量以及換行符(\n)數(shù)量的匹配净赴,就可以避免此類問題出現(xiàn)罩润。
例如,要求輸出的格式為
Very Good!
// Very前面有8個(gè)空格 Good前面有4個(gè)
那么對(duì)應(yīng)的輸出語句應(yīng)該為
cout<<" Very Good!"<<endl;
同理Very前面一樣有8個(gè)空格金度,Good前面有4個(gè)空格
只有雙引號(hào)內(nèi)的字符串才會(huì)被輸出严沥,所以不要把空格打在雙引號(hào)的外面。
時(shí)間超限(Time Limit Exceeded)
出現(xiàn)此類錯(cuò)誤一般是程序沒有正確的返回語句(return 0;)或者陷入了死循環(huán)(while,for,do...while)導(dǎo)致的跟伏。一般出現(xiàn)此類錯(cuò)誤可以通過單步調(diào)試進(jìn)行排查翩瓜。
例如以下程序就會(huì)陷入死循環(huán)
#include <iostream>
using namespace std;
int main(){
int a=0;
while(a<100){
printf("%d", a); //由于a的值永遠(yuǎn)為0,導(dǎo)致無法正常結(jié)束勘高,OJ判定為超時(shí)
}
return 0;
}
內(nèi)存超限(Memory Limit Exceeded)
雖然這類錯(cuò)誤不常見浮定,但是還是提一提,每道題目都會(huì)有內(nèi)存限制(通常為1MB)立美,代表了你這個(gè)程序所能使用的最大內(nèi)存數(shù)量方灾,那么你開數(shù)組的時(shí)候,就需要控制在百萬級(jí)別以內(nèi)洞慎。