[c]输出回文数

假如一个数x不是回文数,逆序输出x的各个位数并定义函数使他变成回文数

例如 

123--->12321

1566--->1566651

5413--->5413145

在我的博客中发表过判断回文数的文章,与这个也有有相似之处,欢迎各位大佬提出意见

#include
#include
void palin(int x)
{
	int m=(int)log10(x)+1;//位数
	int arr[m+1];
	int a=x;
	int b=0;
	for(int i=1;i<=m;i++)//逆序输出每一位数
	{
		b=a%10;
		if(b==0)
		break;
		arr[i]=b;
		a=a/10;
	}
	for(int j=1;j<=m;j++)//将逆序输出的数字保存到数组中
	{
		printf("%d ",arr[j]);
	}
	int sum1=(int)x*pow(10,m-1);
	int sum=sum1;
	int n;
	int l=m;
	for(int j=1;j<=m;j++)//输出回文数
	{
		n=(int)arr[j+1]*pow(10,l-2);
		l--;
		sum=sum+n;
	}
	printf("%d\n",sum);
}
int main()
{
	int num;
	scanf("%d",&num);
	palin(num);
	return 0;
}

[c]输出回文数_第1张图片

你可能感兴趣的:(c语言,算法,数据结构)