这么写太复杂。只需要将平方数和原数分别求余10后得到余数判断是否相等。
#include <stdio.h>
int main()
{
int m,n,i,k,t;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
k=i*i;
t=i;
while(t>0)
{
if(k%10 != t%10)
break;
k=k/10;
t=t/10;
}
if(t==0)
printf("%d ",i);
}
return 0;
}