关于C++的一个十分简单的问题

2025-02-27 19:46:18
推荐回答(6个)
回答1:

你这样编译程序容易出现编译错误,因为函数sqrt()的返回值为double类型的,而x和y必须定义为int类型(完全平方数的定义)。可以进行类型转换:
x = (int)sqrt(i + 100);
y = (int)sqrt(i + 168);
这样编译通过,得出的结果为156.

回答2:

x=sqrt(i+100);
y=sqrt(i+268);

x、y很大几率不是整数,而x、y变量变量的整形,会报错

回答3:

末尾加上system("pause");

回答4:

没错,只有警告

回答5:

sqrt的返回值是 double
而你的 x, y 是 int
把它们改成 double 就行了

回答6:

#include
#include
using namespace std;

int main()
{
double d1,d2;
int i1,i2;
int i;
for(i=1;i<=1e5;i++)
{
i1=d1=sqrt(i+100.0);
i2=d2=sqrt(i+268.0);
if(i1==d1&&i2==d2)
cout< }
return 0;
}