2 lcm zg lcm_zg 于 2016.04.08 22:32 提问

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个回答

caozhy
caozhy   Ds   Rxr 2016.04.08 23: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;   
} 
caozhy
caozhy 回复TZMLAY: 你的程序根本就不对。
2 年多之前 回复
lcm_zg
lcm_zg 请问我贴出来的程序哪里错?
2 年多之前 回复
qq_31989405
qq_31989405   2016.04.09 00:30

#include
#include

int main()
{
double y,z,i;//int 型
for(int x = 1;x<100000;x++) //100000是让这个数尽量大
{
y = sqrt(x+100);//开平方后不一定是整数,可能是小数
z = sqrt(x+268);

if((y*y == x+100&&z*z == x+268))//如果满足这两个条件,说明y,z是整数,也就是说x+100和x+268是完全平方数
{
printf("%lf\n",x);
}
}

return 0;

}

herozhangbz
herozhangbz   2016.04.09 07:49

你的y,z应该是整数,你是for里面的循环代码看不懂么?如果一个数+100或者168取平方根是整数那么这个数才是完全平方数。所以你得保证你的y,z是整数类型,如果这个数不是完全平方数,那么取平方根的时候会做精度取舍,你再平方就不会等于这个数加上100或者268,相当于检验的目的,当然这个检验的前提也是yz是整型

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
编写最简单C语言程序
#include<stdio.h> void main() { printf("This is a sample of c program.\n"); }
12.3 C语言指针的简单示例
前边我们提到了,指针的意义往往在小程序里是体现不出来的,对于简单程序来说,有时候用了指针,反而可能比没用指针还麻烦,但是为了让大家巩固一下指针的用法,我还是写了个使用指针的流水灯程序,目的是让大家从简单程序开始了解指针,当程序复杂的时候不至于手足无措。 #include sbit ADDR0 = P1^0;sbit ADDR1 = P1^1;sbit ADDR2 = P1^2;sbit
简单c语言的小程序
当初自己学习c语言时候用c语言编写的简单小程序,适合初学c语言的新手参考
《C语言及程序设计》实践参考——简单循环的流程图
返回:贺老师课程教学链接  项目要求简单循环的流程图(提示:m是一个变量,在程序中输入)(1)求1到m的倒数和,即  [参考解答](2)求1到m的平方和[参考解答](3)求1到m间所有奇数的和[参考解答](4)求值:  [参考解答](5)求m!,即  [参考解答]
c语言简单程序举例
c语言简单程序举例 适合初学者 各种简单程序
c语言一些简单的程序
三个数找最大值#include &amp;lt;stdio.h&amp;gt; int main() { int a,b,c; scanf(&quot;%d%d%d&quot;,&amp;amp;a,&amp;amp;b,&amp;amp;c); int maxs=max(a,max(b,c)); printf(&quot;%d&quot;,maxs); } int max(int x,int y) { int t; t=x&amp;g...
编码保密 c 语言 简单程序
保密系统,简单程序,编码保密 c 语言 简单程序
简单的C语言程序合集-2
输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。(google面试题) #include int main() { int n, N, count = 0; printf("plesae input a number: "); scanf("%d",&N); for(n=1;n<=N; n++) {
【C语言简单说】一:第一个C语言程序
注册CSDN有些年头了,但是从未写过任何任何的东西。 几年前的懵懵懂懂,现在虽然依旧懵懂但是还好,能够听得懂大触们大致再说神马东西了。这段时间有点怀疑人生,由于本人才疏学浅,所以只好留下一点帮助小白级入门的干货了。大触勿喷!可能我的教程会与其他的教程不一样,甚至可以说是奇葩的存在,但是希望能够给小白们带来一些帮助。好了,废话不多说,大多数的初学者可能第一门语言是学C语言。这也是大多数高校,和网络上
C语言调试的文章(三篇)
关于一些c语言的调试问题,以及排版问题的文章