1.问题

利用C语言实现将一个数字倒着按顺序输出来,例如2546输出6452.

2.解析

可以将一个数a在循环中进行模运算,每次模10,得到最后一位数,然后将这个数输出,在将这个数a除以10,进行下一次模运算,直到这个数a/10等于0然后结束。

3.程序代码

#include<stdio.h>
int main()
{
	int x;
	scanf("%d",&x);
	int d;
	while(x>0){
		d=x%10;
		if(d==0){
			printf("0");
			x=x/10;
			continue;
		}
		else{
			printf("%d",d);
		
		}
			x/=10;
	}
	return 0;
}

也可以利用下面这个式子将每次模10 的结果放入一个变量,并每次循环将变量乘10,使位数每次高一位。

#include<stdio.h>
int main() 
{
	int x;
	scanf("%d",&x);
	int digit;
	int ret = 0;
	while(x>0)
	{
		digit = x%10;
		ret=ret*10+digit;
		printf("x=%d,digit=%d,ret=%d\n",x,digit,ret);
		x/=10;
	}
	printf("%d ", ret);
	
	return 0 ;
}
/*这个程序的缺陷是不能输出最后的0,例如3320,会输出233,
会省略掉一个末尾的0,也可以跟上面程序一样直接输出每次模10 的结果,
而不是将每个值乘对应位数的值(乘10或1000这样).*/

更多推荐

利用C语言实现数字倒序输出