AMNO.6题目描述 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字 输出 三

版权声明:转载请声明原文链接地址,谢谢! https://blog.csdn.net/weixin_42859280/article/details/84875303

题目描述

给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

输入

一个不大于5位的数字

输出

三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数

样例输入

12345

样例输出

5
1 2 3 4 5
54321

提示

哈姆雷特:数字还是字符?这是一个问题!

来源/分类

C语言 

题目截图:
在这里插入图片描述
思路:

利用:
%运算,和/运算!将独立的数存入一个数组里!
%运算取得余数,/运算使得参与运算的数不断减小!
我们定义一个最大的数组:长度为5!这下总能装得下吧~哈哈~
int b[5]={0};
先是有个判断条件:必须要5位数以内!
if(a<1000000)
{}
就用这个啦!
但是那个统计位数,可是让人头痛呀!只好再找个变量啦~
利用a来进行运算,但是a的值后面还要用到,因此只能用一个临时变量啦!
定义一个:t 
c初始化为0!每执行一次运算就加一!这样就可以获得它的位数啦!
do{
 		t/=10;
 		c++;
	 }while(t!=0);
获取独立的数:
	 for(int i=c-1;i>=0;i--)
 		{
 			b[i]=a%10;
 			a/=10;
		 }cout<<c<<endl;
假如输入的是:12345.
我们,会先得到5!这个应该存储在最后面的!所以就把数组颠倒一下!
从:b[c-1].开始储存数字!

具体代码:

#include<iostream>
 using namespace std;
 int main()
 {
 	int a,t;int b[5]={0};int c=0;
 	cin>>a;
 	t=a;
 	do{
 		t/=10;
 		c++;
	 }while(t!=0);
	 
 	if(a<1000000)
 	{
 		for(int i=c-1;i>=0;i--)
 		{
 			b[i]=a%10;
 			a/=10;
		 }cout<<c<<endl;
		 for(int i=0;i<c;i++)
		 {
		 	cout<<b[i]<<" ";
		 }cout<<endl;
		 for(int i=0;i<c;i++)
		 {
		 	cout<<b[c-1-i];
		 }
		 
	 }
	
}

代码截图:
在这里插入图片描述
OJ执行截图:
在这里插入图片描述OK!

猜你喜欢

转载自blog.csdn.net/weixin_42859280/article/details/84875303