c语言进行数字逆序与正序输出

输入一个整数(可以是正数,负数或者0),要求:(1)求出它是几位数;(2)分别输出每一位数字.例如123,输出123;(3)按逆序输出各位数字,例如原数为321,应输出123。

对于第一问:想要知道该整数有几位,只需将其不断对10取余:

int i;
long long y1 = x;
for (i = 0; y1 != 0; i++)
{
	y1 /= 10;
}
printf("该数字是%lld位数\n", i);

取余的次数就是该整数的位数。

对于第二问:想要正序输出各位数字,即从第一位开始分别输出每位数字,可先求出整数的首位,再将其去掉,以此往复,得到所以首位并将其输出。具体方法为:将整数分别对10的n次冥整除和取余(n为整数的位数),整除得到首位,取余则去掉首位。将得到首位数字依次输出,即可得到正序输出。若输入整数为负数,在前方加上“-”即可。

long long y2 = x;
if (x == 0)
{
	printf("分别输出各位数字为%lld\n", x);
}
else if(x < 0)
{
	printf("分别输出各位数字为-");
}

else
{
	printf("分别输出各位数字为");
}

for (int j = i-1; j >= 0; j--)
{
	long long n = y2 / pow(10, j );
	long long m = pow(10, j);
	y2 %= m;
	printf("%lld", abs(n));
}
printf("     \n");

 对于第三问:想要逆序输出,也即个位开始分别输出每位数字,可先求出将该整数的末位,再将其去掉,以此往复,得到所有末位并将其输出。具体方法为:先将整数对10取余,得到末位数字,再对其除10,丢掉末位数字,不断进行这个操作,并将得到的末位数字依次输出,即可得到逆序输出。若输入整数为负数,在前方加上“-”即可。

long long y3 = x;
if (x == 0)
{
	printf("逆序为%lld\n",x);
}
else if (x < 0)
{
	printf("逆序为-");
}
else
{
	printf("逆序为");
}

for (int j = 1; j <= i; j++)
{
	long long n = y3 % 10;

	y3 /= 10;
	printf("%lld", abs (n));
}
printf("     ");

完整代码

int main()
{
	long long x;
	printf("请输入一个整数:");
	scanf("%lld", &x);
	
	int i;
	long long y1 = x;
	for (i = 0; y1 != 0; i++)
	{
		y1 /= 10;
	}
	printf("该数字是%lld位数\n", i);

	long long y2 = x;
	if (x == 0)
	{
		printf("分别输出各位数字为%lld\n", x);
	}
	else if(x < 0)
	{
		printf("分别输出各位数字为-");
	}

	else
	{
		printf("分别输出各位数字为");
	}
	
	for (int j = i-1; j >= 0; j--)
	{
		long long n = y2 / pow(10, j );
		long long m = pow(10, j);
		y2 %= m;
		printf("%lld", abs(n));
	}
	printf("     \n");


	long long y3 = x;
	if (x == 0)
	{
		printf("逆序为%lld\n",x);
	}
	else if (x < 0)
	{
		printf("逆序为-");
	}
	else
	{
		printf("逆序为");
	}
	
	for (int j = 1; j <= i; j++)
	{
		long long n = y3 % 10;

		y3 /= 10;
		printf("%lld", abs (n));
	}
	printf("     ");

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值