该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
void main()
{
int *b=0,j;
char *s = "g12bc32fA31", t[20] = { 0 };
void GenStr(char *s, char *t);
int TestFanshu(char *t, int *b);
GenStr(s, t);
printf("改变后的数组t=%s\n", t);
j=TestFanshu(t, b);
printf("在该数组的平面镜反数有%d个,分别为:", j);
while (*b)
{
printf("%d", *b);
b++;
}
printf("\n");
}
void GenStr(char *s, char *t)
{
int i = 0;
while (*s != '0')
{
*t = *s;
t++;
if ((i % 2 == 0) && ((*s >= 'a'&&*s <= 'z') || (*s >= 'A'&&*s <= 'Z')))
{
*t = *s;
t++;
}
s++;
i++;
}
*t = 0;
}
int TestFanshu(char *t, int *b)
{
int k = 0, kf=0, j = 0;
int fanxu(int n, int c);
char ch;
while (*t != 0)
{
ch = *t;
while (ch >= '0'&&ch <= '9')
{
k = k * 10 + ch - '0';
t++;
ch = *t;
}
if (k != 0)
{
kf = fanxu(k,0);
k = k*k;
kf = kf*kf;
kf = fanxu(kf,0);
if (k == kf)
{
*b = sqrt(k);
b++;
j++;
}
k = 0;
}
t++;
}
return j;
}
int fanxu(int n, int c)
{
c = 10 * c + n % 10;
if (n > 0)
fanxu(n / 10, c);
else return c / 10;
}