一道简单的C语言题,请告诉我错在哪里

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#include"stdio.h"voidmain(){longi,j,k... 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

#include "stdio.h"
void main()
{
long i,j,k; int found=0;
for(i=0;i<100000;i++)
{
for(j=0;j<=i+100;j++)
if(j*j==i+100) {found++;break;}

if(found==0) continue;

for(k=0;k<=i+268;k++)
if(k*k==i+268) {found++;break;}

if(found==2) printf("%ld",i);
}

}
希望大家告诉我此程序错在哪里,一时间想不通。。。不给出正确的算法都行,只要指出思路哪里错了就好,感激不尽
展开
 我来答
HarrySummer
2009-07-29 · TA获得超过680个赞
知道小有建树答主
回答量:650
采纳率:0%
帮助的人:570万
展开全部
for(i=0;i<100000;i++)
{
后面要加
found=0;
使found变量归零

程序可改为
#include "stdio.h"
void main()
{
long i,j,k; int found=0;
for(i=0;i<100000;i++)
{
found=0;
for(j=0;j<=i+100;j++)
if(j*j==i+100) {
found++;
break;
}

if(found==0)
continue;

for(k=0;k<=i+268;k++)
if(k*k==i+268) {
found++;
break;
}

if(found==2)
printf("%ld ",i);
}

}
vbtraz
2009-07-29 · TA获得超过5530个赞
知道大有可为答主
回答量:4152
采纳率:0%
帮助的人:4424万
展开全部
if(found==0) continue` 这句什么意思? 你不停的found++有啥意义呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
51变黑
2009-07-29 · 超过33用户采纳过TA的回答
知道答主
回答量:171
采纳率:0%
帮助的人:109万
展开全部
你的格式看得我很不爽
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dark___templar
2009-07-29 · TA获得超过280个赞
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:279万
展开全部
#include "stdio.h"
void main()
{
int i,j;
for(i=0;i<8100;i++)
{
for(j=0;j<=84;j++)
if(j*j==i+100)
{
for(;j<=84;j++)
if(j*j==i+268)
printf("%d\n",i);
}
}
}

显然当(n+1)^2-n^2>168时,就不可能满足题设条件了
所以 j<=84 i<=84^2

你的错误在于break和contniue使用不当。。不过我也不太会用contiue,所以就写个这样的程序出来,得出结果是21,261,1581
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友52c7e7d
2009-07-29 · 超过14用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:27.5万
展开全部
你可以试一试找哪两个数的平方之差等于68.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式