C语言 :一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

#include<stdio.h>
#include <math.h>
void main()
{
long int i;
double x,y;
for (i=1;i<100000;i++)
{
x=sqrt(i+100);
y=sqrt(i+168);
if((x*x==i+100)&&(y*y==i+168))
printf("\n%ld\n",i);
}

}
编译后一直不对!?

解题过程如下:

#include<stdio.h>

#include<math.h>

void main()

{

int i=1;

int n,m;

for (i=1;i<100000;i++)

{

m=sqrt(100+i);

n=sqrt(268+i);

if(m*m==i+100)

if(n*n==i+268)

printf("%ld",i);

    }}

1581

扩展资料

性质:

C程序中函数的数目实际上是不限的,如果说有什么限制的话,那就是,一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名的函数,这个函数称为主函数,整个程序从这个主函数开始执行。

C语言程序鼓励和提倡人们把一个大问题划分成一个个子问题,对应于解决一个子问题编制一个函数,因此,C语言程序一般是由大量的小函数而不是由少量大函数构成的,即所谓“小函数构成大程序”。这样的好处是让各部分相互充分独立,并且任务单一。因而这些充分独立的小模块也可以作为一种固定规格的小“构件”,用来构成新的大程序。

比较特别的是,比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补0)位移。例如,将11100011右移3比特,算术右移后成为11111100,逻辑右移则为00011100。因算术比特右移较适于处理带负号整数,所以几乎所有的编译器都是算术比特右移。

运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-06
#include<stdio.h>
#include <math.h>
void main()
{
int i;
int x,y;
for (i=1;i<100000;i++)
{
x=(int)sqrt(i+100);
y=(int)sqrt(i+168);
if((x*x==i+100)&&(y*y==i+168))
printf("\n%ld\n",i);
}

}本回答被提问者采纳
第2个回答  2010-12-06
#include<stdio.h>
#include <math.h>
void main()
{
long i;
int x,y;
for (i=1;i<100000;i++)
{
x=(int)sqrt(i+100);
y=(int)sqrt(i+168);
if((x*x==i+100)&&(y*y==i+168))
printf("\n%ld\n",i);
}

}

是这个意思么?

还是在i+100的基础上再加168啊
第3个回答  2010-12-06
if((x*x==i+100)&&(y*y==i+168))
x*x是double类型,i+100是整型,浮点==整型,你觉得他们相等的几率大吗。