逆转数求大神指点

作者在 2015-03-26 17:22:40 发布以下内容
任意给你一个整数,这个数可能很大(最长不超过100位),你能求出它的逆转数吗?
逆转数定义如下:
1.一个末尾没有0的整数,它的逆转数就是各位数字逆序输出;
2.一个负数的逆转数仍是负数;
3.一个末尾有0的整数,它的逆转数如同下例:
reverse (1200) = 2100
reverse (-56) = -65
要求定义并使用如下函数:
void reverse(char *str)
{
//函数求出str的逆转数并存入str。

}


我的程序:

#include<stdio.h>
#include<string.h>

int main()
{
    char ch[100],*p,*q,t;
    int i,n;
    gets(ch);
    n=strlen(ch);
    q=strchr(ch,'\0');
    q--;
    while(*q=='0')
    {
        q--;
        n--;
    }
    p=&ch[0];
    if(*p=='-')
    {
        p++;
        n--;
    }
    for(i=1;i<=n/2;i++)
    {
       t=*q;
       *q=*p;
       *p=t;
       p++;
       q--;
    }
    puts(ch);
    return 0;
}

求指点那里不正确。。



默认分类 | 阅读 1441 次
文章评论,共0条
游客请输入验证码
文章分类
文章归档
最新评论