POJ第1218题总是报"Compile Error"错误

urakvv7 2010-01-05 03:36:14
链接地址:http://acm.pku.edu.cn/JudgeOnline/problem?id=1218
代码如下:
// THE DRUNK JAILER
// ÌâÄ¿Ë㷨ʵ¼ÊÉÏÊÇÇónÒÔÄÚµÄÍêȫƽ·½ÊýµÄ¸öÊý
// ÒòΪֻÓÐÍêȫƽ·½ÊýÓÐÆæÊý¸öÒò×Ó
#include <iostream>
#include <cmath>
using namespace std;

int main() {

int lines, n;
cin >> lines;

while (lines--) {
cin >> n;
cout << int(sqrt(n)) << endl;
}

system("PAUSE");
return 0;
}

我在自己的Dev-C++ 4.9.9.2环境中可以正确编译、运行,但提交到POJ总是报"Compile Error"错误。
望指点,谢!
...全文
559 20 打赏 收藏 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
dskit 2010-01-05
  • 打赏
  • 举报
回复
Main.cpp
Main.cpp(12) : error C2668: 'sqrt' : ambiguous call to overloaded function
math.h(581): could be 'long double sqrt(long double)'
math.h(533): or 'float sqrt(float)'
math.h(128): or 'double sqrt(double)'
while trying to match the argument list '(int)'

poj可以看错误提示的

#include <iostream>
#include <cmath>
using namespace std;

int main() {

int lines, n;
cin >> lines;

while (lines--) {
cin >> n;
cout << int(sqrt((double)n)) << endl;
}

return 0;
}
urakvv7 2010-01-05
  • 打赏
  • 举报
回复
不过这编译的错误确实解决了。谢!
咦?
cout < < int(sqrt(n)) < < endl;

中的sqrt(n)不进行类型的隐式转化?
⊙﹏⊙b汗
[Quote=引用 15 楼 sammylan 的回复:]
6307417 442091289 2350 Wrong Answer  C 359B 2010-01-05 16:01:55
6307416 quk_1999 1298 Wrong Answer  C++ 442B 2010-01-05 16:01:55
6307415 442091289 2350 Wrong Answer  C++ 359B 2010-01-05 16:01:44
6307414 smallworld 3752 Presentation Error  C++  2010-01-05 16:01:31
6307413 xcc0322 2823 Runtime Error  C++ 689B 2010-01-05 16:01:31
6307412 holy0521 1471 Wrong Answer  C 1688B 2010-01-05 16:01:17
6307411 SammyLan 1218 Accepted 280K 16MS C++ 276B 2010-01-05 16:00:45

[/Quote]
pmars 2010-01-05
  • 打赏
  • 举报
回复
#include <iostream>
#include <cmath>
using namespace std;

int main() {

int lines, n;
cin >> lines;

while (lines--) {
cin >> n;
cout << int(sqrt((double)n)) << endl;
}

return 0;
}


ac 了!
SammyLan 2010-01-05
  • 打赏
  • 举报
回复
cout<<int(sqrt((double)n))<< endl;
sqrt有double,long double,float三个版本的
你传一个int进去
肯定会出现重载决策失败拉
urakvv7 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sammylan 的回复:]
你的代码在本机编译都编译不通过的...
真汗了
[/Quote]
怎么可能?编译、运行都是被我亲眼所见。你用的是什么环境?
SammyLan 2010-01-05
  • 打赏
  • 举报
回复
6307417 442091289 2350 Wrong Answer C 359B 2010-01-05 16:01:55
6307416 quk_1999 1298 Wrong Answer C++ 442B 2010-01-05 16:01:55
6307415 442091289 2350 Wrong Answer C++ 359B 2010-01-05 16:01:44
6307414 smallworld 3752 Presentation Error C++ 2010-01-05 16:01:31
6307413 xcc0322 2823 Runtime Error C++ 689B 2010-01-05 16:01:31
6307412 holy0521 1471 Wrong Answer C 1688B 2010-01-05 16:01:17
6307411 SammyLan 1218 Accepted 280K 16MS C++ 276B 2010-01-05 16:00:45
SammyLan 2010-01-05
  • 打赏
  • 举报
回复
cout<<int(sqrt((double)n))<< endl; 
SammyLan 2010-01-05
  • 打赏
  • 举报
回复
你的代码在本机编译都编译不通过的...
真汗了
urakvv7 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 thefirstz 的回复:]
你的文件名需要是以.cpp结尾的,是不是弄成.c结尾了
[/Quote]
考虑得很细,不过在POJ上提交时是不需要源代码文件的,只需要把代码拷贝进去。
昵称很不好取 2010-01-05
  • 打赏
  • 举报
回复
你的文件名需要是以.cpp结尾的,是不是弄成.c结尾了
kouwenlong 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zhoupo 的回复:]
引用 8 楼 kouwenlong 的回复:
#include <iostream.h>
#include <cmath.h>

Sure?
[/Quote]
试试吧,我也不确定。
urakvv7 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 kouwenlong 的回复:]
#include <iostream.h>
#include <cmath.h>
[/Quote]
Sure?
kouwenlong 2010-01-05
  • 打赏
  • 举报
回复
#include <iostream.h>
#include <cmath.h>
urakvv7 2010-01-05
  • 打赏
  • 举报
回复
Compile Error...
[Quote=引用 5 楼 tanmeining 的回复:]
C/C++ code
cout<<int(sqrt(n))<< endl; 改成
cout<< (int)(sqrt(n))<< endl;
[/Quote]
urakvv7 2010-01-05
  • 打赏
  • 举报
回复
Compile Error...
[Quote=引用 2 楼 thefirstz 的回复:]
试试下面代码
C/C++ code#include<iostream>
#include<cmath>usingnamespace std;int main() {int lines, n;
cin>> lines;while (lines--) {
cin>> n;
cout<< (int)(sqrt(n))<< endl;
}

getchar();return0;
}
[/Quote]
tanmeining 2010-01-05
  • 打赏
  • 举报
回复

cout < < int(sqrt(n)) < < endl; 改成
cout << (int)(sqrt(n)) << endl;
tanmeining 2010-01-05
  • 打赏
  • 举报
回复
cout < < int(sqrt(n)) < < endl;
urakvv7 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sammylan 的回复:]
将system函数去掉
在不行就将注释去掉
不要有中文注释
[/Quote]
之前用system函数都没遇到过错误,去掉中文注释还会是Compile Error。
昵称很不好取 2010-01-05
  • 打赏
  • 举报
回复
试试下面代码
#include <iostream> 
#include <cmath>
using namespace std;

int main() {

int lines, n;
cin >> lines;

while (lines--) {
cin >> n;
cout << (int)(sqrt(n)) << endl;
}

getchar();
return 0;
}
SammyLan 2010-01-05
  • 打赏
  • 举报
回复
将system函数去掉
在不行就将注释去掉
不要有中文注释
内容概要:本文介绍了“Java+大数据+AI架构师实战营”这一系统性人才培养方案,旨在帮助具备Java基础的开发者在26周内完成向融合Java、大数据与人工智能技术的复合型架构师跃迁。课程围绕五大核心模块展开:架构基本功(微服务演进、分布式锁与ID设计)、数据引擎(亿级数据存储与Flink CDC实时同步)、网关与可观测性(Gateway源码改造、限流与日志采样)、AI融入架构(推荐系统、大模型应用开发)以及架构思维培养。通过“小绿书”项目贯穿始终,强调整合三域技术的系统设计能力而非孤立技能堆叠。; 适合人群:具备1-5年Java开发经验,希望突破技术瓶颈、拓展大数据与AI领域能力的中高级研发人员;适合有志于成长为全栈架构师的技术从业者。; 使用场景及目标:①掌握高并发、分布式系统下的架构设计方法;②理解海量数据的存储分层与实时计算架构;③学会将AI能力如大模型、RAG、向量检索等深度集成到业务系统中;④构建完整的系统可观测性与网关控制能力;⑤形成跨技术域的系统性架构思维。; 阅读建议:此资源以实战项目驱动学习,强调动手实践与架构思维并重。建议学习者结合课程代码与实际调试,深入理解每一环节的技术选型与设计权衡,尤其关注真实生产环境中难以复现的复杂约束,从而建立可迁移的架构“手感”。

65,214

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧