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

来源:互联网 发布:逆战血手队伤数据qq群 编辑:程序博客网 时间:2024/05/16 07:23

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

思路描述:
第一步 将数字转化为字符串 . 可以使用 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

0 0
原创粉丝点击