用C语言输出整数的逆序数

C语言 输出整数的逆序数

注意情况:

  1. 整数为负数;
  2. 整数的尾数为0。
#include<stdio.h>
#include<math.h>
int change(int n);
int main()
{
	int n;
	scanf("%d",&n);
	
	change(n);//运行函数将n逆序输出
	return 0;
}
int change(int n)
{
	int a,sum=0,flag,b=n,count=0;
	if(n<0)//n为负数时,可考虑将'-'单独输出
	{
		printf("-");
		return change(-n);//将n变成|n|继续运行change函数
	}
	while(b)
	{
		b/=10;
		count++;//用b来记录n的位数count
	}
	
	for(;n;count--)
	{
		a=n;
		a%=10;
		sum+=a*pow(10,count-1);//例如:1234的逆序数为4*10^3+3*10^2+2*10^1+1*10^0=4321
		n/=10;
	}
	printf("%d",sum);
}

关于整数逆置的几个方法

问题
1.逆置数字
2.负数的逆置
3.尾数有0的逆置
(1)一个个数字读取,放在数组里(占空间但方便顺序/逆序输出)
a[xxxx]
(2)每提取出一个数字就输出(简洁)
a%=10;
printf("%d",a);
(3)先提取每个数字,没提取一次就将之*pow(10,x),
之后累加(容易将开头为0的去除,但要先求出数字的位数)

	while(b)
	{
		b/=10;
		count++;
	}
	
	for(;n;count--)
	{
		a=n;
		a%=10;
		sum+=a*pow(10,count-1);
		n/=10;
	}
	printf("%d",sum);
}

用C语言输出整数的逆序数_第1张图片
用C语言输出整数的逆序数_第2张图片

你可能感兴趣的:(用C语言输出整数的逆序数)