#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void check (int i)
{
char p[6],q[6];
int length;
register int j,r;
_itoa (i, p, 10); //数字到字符的转化
length = strlen(p); //获得p的长度
r = length; //
q[r] = '\0'; //
r--; //
for (j= 0 ; j<length; j++){ //这一部分将p从后向前逆序拷贝给r(纯属个人习惯)
q[r] = p[j]; //
r--; //
} //
if (!strcmp (p, q)) // 注意strcmp,该函数返回FALSE如果两个字串相等,TRUE如果不相等(我想你的问题可能就在这里)
printf ("%d\n", i);
}
int main()
{
int i;
for (i=100; i<=999; i++)
check(i);
return 0;
}
追问程序运行错误
追答不好意思,vc下那个可以,wintc就有问题了,我重新弄了一个,你试试:
/*求100到999的回文数*/
#include
#include
#include
void select(char* ,char* );
int main(void)
{
int i,j,k,l;
char a[4],b[4];
for(i = 100;i = 0;j--,k++)
b[k] = a[j];
b[l] = '\0';
select(a,b);
}
return 0;
}
void select(char*a,char*b)
{
if(strcmp(a,b) == 0)
printf("%s\n",a);
}