跪求C语言能人帮我检查这个C语言编程,急求,不胜感激!!

[复制链接]
查看11 | 回复1 | 2011-3-14 03:56:29 | 显示全部楼层 |阅读模式
1,编写函数int fun(long *x)找出所有满足以下条件的六位整数:该数是一个完全平方数,即时某数的平方;该数是回文数,即该数等于它的反序数。例如,698896是863的平方且698896是回文数,因此698896满足。将上述六位数存入x指向的数组中返回整数的个数。
2,编写main(),申明result数组,调用fun将满足条件的六位数存入result中。
测试数据及结果:698896

我编的如下: #includemath.h
#includestdio.h
int fun(long *x)
{long n,a,b,c,d=0,j=0;
for(n=100000;n=999999;n)
{a=sqrt(n);
if(a*a==n)
{b=n;
while(b0)
{c=b;d=d*10 c;b=b/10;}
if(d==n)
x[j]=n;}
}
return j;
}
main()
{ long result[10];int i,j;
j=fun(result);
for(i=0;ij;i)
printf(\"\\n%d\",result);
}
最终可以运行,但为什么什么都输不出,求原因,跪求!!
回复

使用道具 举报

千问 | 2011-3-14 03:56:29 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">当然不是死循环的原因,就不要乱说了.
是因为你的d变量每一轮之前都没有置0,导致d越加越大.
把d = 0放到while的上一句就好了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行