习题6-6 使用函数输出一个整数的逆序数 (20 分)

本题要求实现一个求整数的逆序数的简单函数。

函数接口定义:

int reverse( int number );

其中函数reverse须返回用户传入的整型number的逆序数。

裁判测试程序样例:

#include <stdio.h>

int reverse( int number );

int main()
{
    
    
    int n;

    scanf("%d", &n);
    printf("%d\n", reverse(n));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

12340

输出样例:

-4321

题解:

int reverse( int number )
{
    
    
	int i; //循环变量 
	int flag = 0; //中介,判断有没有变过号 
	int sum = 0; //逆序总和 
	int t; //存放number每一位数 
	if (number < 0) //如果要逆序的数小于 0 ,变成正数好算一点,然后 flag  赋值为 1 ,表示 变过号,等等需要变回来 
	{
    
    
		number = -number;
		flag = 1;
	}
	while (number) //当number不等于 0 时循环 
	{
    
    
		t = number % 10; // 模10 取最后一位数 
		sum = sum * 10 + t; //按公式逆序运算 
		number /= 10; //整除10 把最后一位除掉 
	}
	if (flag == 1) return -sum; //如果前面变过号 flag 会变成 1 这个时候就需要变回来 
	else return sum; //没有直接返回给 reverse 就好了 
}

猜你喜欢

转载自blog.csdn.net/qq_44715943/article/details/114654596