帮我看看这个小程序哪里出问题了

ck2333 2016-11-18 10:45:47
标题:拼接平方数

小明发现49很有趣,首先,它是个平方数。它可以拆分为4和9,拆分出来的部分也是平方数。169也有这个性质,我们权且称它们为:拼接平方数。

小明想:还有哪些数字是这样的呢?

你的任务出现了:找到某个区间的所有拼接平方数。
我的代码是:
#include <stdio.h>
#include <math.h>

int main ()
{
int i,j=1,k=0,l;
long int a,b;
double m,n;
printf("输入你的a和b:");
scanf("%ld%ld",&a,&b);

for(i=a;i<b+1;i++)
{
while(j!=0) //循环求i一共有几位数
{
j=i/10;
k++;
}
for(l=1;l<k;l++) //循环判断是否为拼接平方数
{
m=sqrt(i/pow(10,l));
n=sqrt(i-pow(10,l)*(i/pow(10,l)));
if((int)m==m||(int)n==n)
{
printf("%d",i);
break;
}
}
k=0;
j=1;
}

return 0;
}

但是结果却是

然后不管怎么按都出不了结果。
...全文
197 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ck2333 2016-11-18
  • 打赏
  • 举报
回复
哎呀,好气啊。。没注意到
赵4老师 2016-11-18
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
paschen 2016-11-18
  • 打赏
  • 举报
回复
while循环是个死循环,每次i没有变化,j会一直不为0
小灸舞 版主 2016-11-18
  • 打赏
  • 举报
回复
你这个while (j != 0) //循环求i一共有几位数 { j = i / 10; k++; } 死循环了,你的i都没有变化 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
  • 打赏
  • 举报
回复
while循环一直出不来

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧