oj提交遇到的问题

来源:互联网 发布:c语言实现成绩查询系统 编辑:程序博客网 时间:2024/05/16 17:21


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'

[cpp] view plaincopyprint?
  1. #define num 1024  
  2. char a[num];  
  3. char b[num];  
  4. int max, length_a, length_b;  
  5.   
  6. void pulls(int now_a, int now_b, int num){  
  7. }  
这里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?
  1. if(sheng[n] != -1){  
  2.     cout<<"min"<<n<<endl;  
  3.     return sheng[n];  
  4. }  
结果发现一开始就进入这个if, 于是cout<<sheng[n];显示. 后来意识到时sheng数组我定义成了double型. 这个问题好难看出


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


0 0
原创粉丝点击