#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int x,y;
int bj,sum,bj1,sq;
while(cin>>x>>y)
{
bj=1;
if(x==0&&y==0) break;
for(int i=x;i<=y;i++)
{
bj1=1;
sum=i*i+i+41;
sq=sqrt(sum);
for(int j=2;j<=sq;j++)
{
if(sum%j==0)
{
bj1=0;
break;
}
}
if(bj1==0) {bj=0;break;}
}
if(bj==1) cout<<"OK"<<endl;
else cout<<"Sorry"<<endl;
}
}
以上代码提示编译错误、 看提示说 对重载函数的调用不明确、 查资料 终于明白。
Int型变量可以隐式的转换为各种类型,而程序中没有明确指出,编译就会出错。
应将sqt那句改为 sq=sqrt((double)sum);
本文详细解析了一个C++代码片段,在处理整型变量转换时遇到的编译错误问题。通过调整代码逻辑,将关键转换操作明确为显式转换,成功解决了编译错误。文章提供了代码修改前后的对比,帮助开发者理解隐式转换的潜在陷阱,并学会正确使用显式转换来避免此类问题。

523

被折叠的 条评论
为什么被折叠?



