你在fun函数的for循环里面改动i的值造成i一直变小以致造成死循环
#include
#include "math.h"
void main (void)
{
int fun(long *x),n;
long result[10],*p;
p=result;
n=fun(p);
for(int i=0;i
cout<
}
int fun(long *x)
{
int n=0,sum,t,k;
long i,i1;
for(i=100000;i<=999999;i++)
{
// cout< i1=i;
for(int j=(int)sqrt(i);j*j<=i;j++)
{
if(j*j==i)
break;
}
if(j*j<=i)
{
int y = i;
for(k=0,sum=0,t=0;k<6;k++)
{
t=y%10; //这里问题
sum=sum*10+t;
y/=10;
}
if(sum==i1)
{
*(x+n)=i1;
n++;
}
}
}
return n;
}
#include
#include
//#include
using namespace std;
int main ()
{
void fun(int n);
for(int ii=317;ii<1000;ii++)
fun(ii);
cout<
}
void fun(int n)
{
int num=n*n;
int a[6];
int count=0;
while(num)
{
a[count++]=num%10;
num/=10;
}
int flag=0;
for(int i=0;i<3;i++)
{
if(a[i]!=a[5-i])
flag=1;
break;
}
if(flag==0)
cout<
}