:C中,一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,求这数,怎样设条件?

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:36:51
程序如下:
main()
{
float i,x,y,z;
for (i=1;i<100000;i++)
{
x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/

if(x*x==i+100&&y*y==i+268) /*这是我看不懂的地方,我试了,程序运行正确,但这个条件在任何时候都为真啦,更何况它是float 型,若i=1,它为真啦?*/

printf("\n%.2f\n",i);
}
getch();
}

因为float类型的数据,如果不是完全平方数,开平方后是有小数位数的。而不像我们数学问题上的,公式等价。

在C语言中,float类型的数据,开平方后再相乘是不等价的。请看例子:

#include "stdio.h"

#include "math.h"

main()

{float n,x,y;

 printf("\n");

 scanf("%f",&n);/*输入一个数给n*/

 x=sqrt(n);

 printf("x=%f\n",x); /*这里不要指定输出有效数字的位数,才能看出区别*/

 y=x*x;

 printf("y=%f\n",y); /*同上*/

 getch();

}

用这函数,试着输入,11以上的数字,就看的很明白了。11以下的要用double或long double 才能看的出来。(结果如图)

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? C语言中一个整数除以另一个整数结果为什么只取整? “在一个整数后面加上百分号,这个数就缩小了100倍。”对否? C语言 输入一个整数,如何输出它的逆续数,比如12345,要求输出54321 c语言:输入一个整数,从高位开始逐位输出它的各位数字。 一个整数加上一个小数等于这个整数乘于这个小数 已知一个自然数,若加上168,是一个整数的平方;若加上100,则是另一个自然数的平方,求这个自然数。 证明4个连续整数的积加上1是一个整数的平方 请你试一试,说明连续4个整数的积加上1是一个整数的平方 求证:四个连续整数的积加上1是一个整数的平方。