C语言程序编写

2024-12-16 07:30:42
推荐回答(2个)
回答1:

#define MAX 10003
#define MIN -10003
#define FALSE 32767

/*
*函数介绍:略
*输入参数:小于MAX大于MIN的整数
*返回值:正确输入返回颠倒后的整型数,错误输入返回FALSE
*说明:以int型占4字节为基准,最大输入参数反转后应小于32767而大于-32768。故MAX为10003 MIN为-10004。错误返回值必须是该范围外整数,故FALSE为32767
*/

int reverse(int value)
{
int flag = 1;
int ret;
int temp = value;
int n = 0;

if(value>MAX || value{
return FALSE;
}

if(value<0)
{flag = -1;
value *= -1;
}

if(value<10)
{
return ret;
}

while(temp>=10)
{
temp /= 10;
n++;
}

temp = value%10;
while(n!=0)
{
temp *= 10;
n--;
}

ret = temp + reverse(value/10);

return ret * flag;
}

(注:没经过编译直接写的,可能有bug或者小的语法错误,请自行修正)

没看清是正整数....
删除flag相关语句,并将宏定义的MIN值修改为0即可

回答2:

int reverse(int value) {
int ret=0;
while (value){
ret*=10;
ret+=value%10;
value/=10;
}
}