习题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 n,sum;
while(number!=0){
n=number%10;
sum=sum*10+n;
number/=10;
} return sum;
}
关于此题的思考
逆序数的本质是将位数逆序,则每次取最后一位余数以后,倒着将余数乘以10再递归以获得变位效果。
也可以递归求余,把输入的数字作为循环的入口条件,逐个从最后一个输出
#include <stdio.h>
int main(void)
{
int a,t;
printf("输入一个数字:");
scanf("%d",&a);
t=a%10;
if(t==0)
{
a=a/10;
t=a%10;
}
while(a!=0)
{
printf("%d",t);
a=a/10;
t=a%10;
}
putchar('\n');
return 0;
}