TZMLAY 2016-04-08 14:32 采纳率: 100%
浏览 1359
已采纳

C语言简单程序调试问题

这是源码:

#include
#include

int main()
{
double x,y,z,i;
for(x = 1;x<100000;x++)
{

y = sqrt(x+100);

z = sqrt(x+268);

if((y*y == x+100)&&(z*z == x+268))
{
printf("%lf\n",x);
}
}

return 0;

}

不知道问题出在哪里?麻烦解答一下。
另,为什么知道设定的数值范围是1-10万,这个是不一定的?
再另,表示对for里面的不太理解

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

  • 写回答

3条回答 默认 最新

  • threenewbee 2016-04-08 15:22
    关注
     #include<stdio.h>
    #include<math.h> 
    
    int main()
    {
        int x = 0;
        while (true)
        {
            if (((int)sqrt(x + 100) * (int)sqrt(x + 100) == x + 100)
                && ((int)sqrt(x + 168) * (int)sqrt(x + 168) == x + 168))
            {
                printf("%d\n", x);
                break;
            }
            x++;
        }
        return 0;   
    } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器