题目要求:本题要求实现一个求整数的逆序数的简单函数。
函数接口定义:
int reverse( int number );
其中函数reverse须返回用户传入的整型number的逆序数。
解法如下:
reverse函数
//其中函数reverse须返回用户传入的整型number的逆序数。
int reverse(int number) {
int int_arr[9999];//定义一个数组
int oldindex = 0;//记录数字的位数长度(变)
int index = 0;//记录数字长度(不变)
int sum = 0;//(返回值)
int fushu = 0;//0代表正,1代表负
//如果是负数,取为正数
if (number < 0) {
number = abs(number);
fushu = 1;
}
//将number每一位分离,逆序存入数组中
for (number; number > 0; number /= 10) {
int_arr[index++] = number % 10;
}
oldindex = index - 1;
//将数组中的元素组成逆序数
for (int i = 0;i < index;i++) {
sum += (pow(10, oldindex--)) * int_arr[i];
}
//如果fushu为1则返回值取反,否则不变
sum = fushu == 1 ? (0 - sum) : sum;
return sum;
}
主函数:
int main()
{
int n;
scanf_s("%d", &n);
printf("%d\n", reverse(n));
return 0;
}