oj提交遇到的問題
1. error: reference to 'max' is ambiguous
ambiguous是含糊的意思。系統內部有個max變數, 重名了。 換成另外一個變數名.
2. In function 'int main()':
p.cc:46: error: overloaded function with no contextual type informat
這個又是同名, 是函式同名了, 不是main函式的問題, 也許是其他函式名, 改了吧!3. syntax error : missing ')' before 'constant'
error C2143: syntax error : missing ';' before 'constant'
- #define num 1024
- char a[num];
- char b[num];
- int max, length_a, length_b;
- void pulls(int now_a, int now_b, int num){
- }
4.
p.cc: In function 'int main()':p.cc:44: error: call of overloaded'abs(int)' is ambiguous/usr/include/c++/4.4/cmath:94: note: candidates are: double std::abs(double)/usr/include/c++/4.4/cmath:98: note: float std::abs(float)/usr/include/c++/4.4/cmath:102: note: long double std::abs(long double)
程式中用到了abs函式, 因為你abs函式裡的是int型, 一種方法你將裡面的數乘以1.0, 然後加標頭檔案 cmath, ,, 第二種方法直接引入標頭檔案 cstdlib, (我寫的是c++).
5. 這個不是編譯錯誤, 屬於程式錯誤. 我在main函式中 memset(sheng, -1, sizeof(sheng));
[cpp] view plaincopyprint?- if(sheng[n] != -1){
- cout<<"min"<<n<<endl;
- return sheng[n];
- }
6. vc++編譯是報錯 LINK : fatal error LNK1168: cannot open Debug/1.exe for writing
執行 link.exe 時出錯.
1. 你要關閉之前的執行黑框 2. 要是你發現工作列中沒有執行的黑框, 那就啟動任務工作管理員,找到1.exe程序關閉
7. 做一道深度搜索的時候,發現搜尋if判斷的不同決定上走, 下走, 發現下走後面的程式沒能執行, 後來發現上走下走形成了死迴圈, 後來記錄一下visited[]就好了.
8. vc++編譯錯誤:error C2601: 'print' :local function definitions are illegal, 問題出在這個函式前面的函式沒有 { 沒有匹配, 這裡是沒 有少了一個}
9. 今天用到了unsigned long long型別,輸出的時候printf("%lld", m) 無符號long long printf("%llu", m); 在vc++中沒法編譯成功, 但是提交可以成功。 後來用了_int64 m;
這個m因為是64位的, 所以不能用cout輸出, 可以printf("%I64d\n", m);
10. poj上通過不了_int64, 但是可以unsigned long long, vc++可以通過_int64, 但是通過不了unsigned long long。萬幸的是現在可以不用vc++了。
11. 很久以前提交的時候就遇到了for裡頭定義int i編譯錯誤的問題, 現在才明白。 ISO/ANSI C++ 把在此定義的變數的作用域範圍限定在 for 迴圈體 內,或者說,出了迴圈體之外這個變數就無效了。在zoj提交報的編譯錯誤是這個:name lookup of 'i' changed for ISO 'for' scoping, 因為我第一個for定義了 int i, 後來的for就沒有定義了, 所以報了這個錯誤, 把int i放到for 前頭就好了.
12. 一位陣列動態定義,之前int *p = new p(len); delete p; 但是後來總是報記憶體錯誤, 後來才發現int *p = new p[len]; delete []p;這麼定 義。
13. subscript requires array or pointer type
left of '.a' must have class/struct/union type當你定義了一個結構體,名字跟另一個變數重名了,那麼就會編譯出錯。
14. 編好之後執行時出現:x=-1.#IND,這表示被零除溢位了。如:
double c=0;
double x=-1/c; //此時x就會顯示為-1.#IND
15. 提交的時候Runtime Error: SIGFPE, 這個是浮點數異常, Runtime Error:SIGSEGV 段錯誤
轉自:http://blog.csdn.net/fofu33/article/details/8213821