您的位置:首页 > 其它

判断输入的整数是不是回文数

2015-06-12 17:01 453 查看
功能

判断输入的整数是不是回文数 。

思路描述:

第一步 将数字转化为字符串 . 可以使用 sprintf()函数 和itoa()函数 就可以把数字转化为字符串

第二步 就是定义两个指针 一个指向字符串的开始位置 一个指向字符串的最后一个字符 然后就行判断 就可以了 可以使用 while() 也可以使用for()循环语句

遇到的问题:

使用sprintf的时候写成了

sprintf(buf,%d\n,num);结果用strlen测试传递过来的字符串的时候总是多一个 导致结果不正确 多的一个字符就是\n

还有就是 first + strlen (src) 指针是指向\0 的位置 所以要-1 指向最后一个字符

不足之处

这个程序的不足之出 就是输入的数据有限制

0 < x <2^64;

编译器

GCC

代码如下

#include <stdio.h>
#include <string.h>
int palindrom( char *src )
{
int ret = (src != NULL);
if( ret ){
int num = strlen(src);
char *first = src;
char *last = first +( num -1);
while( first < last ){
if( *first == *last ){
first++;
last--;
}
else{
break;
}

}
return *first == *last ? 0 : 1;
}
return -1;
}
int main( void )
{
unsigned long long int num;
char buf[20] = {0};
printf("input a num!\n");
scanf("%d",&num);
sprintf(buf,"%d",num);
printf("%d\n",palindrom(buf));
return 0;
}


第一次写博客 只希望可以坚持下去

对自己的要求:

用自己的方式 写出属于自己的代码! Good Luck
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: