+100能完全开方再+168能完全开方程序求助
#include<stdio.h>
#include<math.h>
void main()
{ int x;
x=1;
while(sqrt(x+100) == (int)sqrt(x+100) &&sqrt(x+268) == (int)sqrt(x+268))
{
x++;
}
printf("x=%d\n",x);
}这个代码有什么问题吗?我的结果是x=1,但是答案是21啊,求助求助,谢谢各位 你写代码不自己弄点数据试一下吗?
第一个循环就退出来了,因为两个条件都是假,所以 x 就是 1
按你这个思路, 两个 == 应换成 !=
本帖最后由 ba21 于 2017-8-12 10:35 编辑
这样可否
#include<stdio.h>
#include<math.h>
void main()
{ int x;
x=1;
while(1)
{
if(sqrt(x+100) == (int)sqrt(x+100) &&sqrt(x+268) == (int)sqrt(x+268))
{
break;
}
x++;
}
printf("x=%d\n",x);
} 九九八十一 发表于 2017-8-12 10:11
你写代码不自己弄点数据试一下吗?
第一个循环就退出来了,因为两个条件都是假,所以 x 就是 1
按你这个 ...
谢谢 ba21 发表于 2017-8-12 10:22
这样可否
谢谢
页:
[1]