输出数字(书后作业4.9)

本文介绍了一个C语言程序,该程序能够接收一个不超过五位的正整数,输出其位数、每位数字及其逆序后的数字。适用于初学者理解和实践C语言的基本输入输出及数组操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【问题描述对于给定一个不多于5位的正整数,请按以下要求输出结果:①求它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字。例如原数为321,应输出123

输入形式输入一行,一个不多于5位的正整数。

输出形式

输出三行。

第一行输出是几位数。

第二行正序输出每一位数字,各个数字间以空格分隔。

第三行逆序输出每一位数字,各个数字间以空格分隔。

样例输入

 12345

样例输出

5

1 2 3 4 5

5 4 3 2 1

#include <stdio.h>
#include <stdlib.h>

int main() 
{
	int m[5],i,temp, n,j;
	scanf("%d", &n);
	
	i = 0;
	temp = n;
	while(temp != 0)
	{
		m[i] = temp % 10;
		temp /= 10;
		i++; 
	}
	
	j = i;
	printf("%d\n", i);
	for(i = j - 1; i >= 0; i--)
		printf("%d ", m[i]);
		
	printf("\n");
	
	for(i = 0; i < j; i++)
		printf("%d ", m[i]);
		
	return 0;
}
首先求数的位数,先把输入的数,赋值给temp,用while循环进行取模,例如题目输入的12345,对10取模,余5,把这个5存储到一个数组m[]内,接下来对temp去尾,/10就后temp变为1234,然后重复上述过程,把4,3,2,1依次存储到m[]内,最后当temp等于1时,再经过1/10,则temp等于0,满足while的退出条件,i作为计数器,正好知道了所求数的位数,所以输出i就是位数,再通过逆序输出数组,得到正序的的每一位数字,是因为存储整数的每一位数字时,是从后向前存储的。所以最后正序输出数组,就是逆序输出整数的每一位数字。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值