指针逆转数
任意给你一个整数,这个数可能很大(最长不超过100位),你能求出它的逆转数吗?逆转数定义如下:
1.一个末尾没有0的整数,它的逆转数就是各位数字逆序输出;
2.一个负数的逆转数仍是负数;
3.一个末尾有0的整数,它的逆转数如同下例:
reverse (1200) = 2100
reverse (-56) = -65
要求定义并使用如下函数:
void reverse(char *str)
{
//函数求出str的逆转数并存入str。
}
我的程序
#include
#include
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;
}
交不上去,求解。。