1. 程式人生 > >AMNO.6題目描述 給出一個不多於5位的整數,要求 1、求出它是幾位數 2、分別輸出每一位數字 3、按逆序輸出各位數字,例如原數為321,應輸出123 輸入 一個不大於5位的數字 輸出 三

AMNO.6題目描述 給出一個不多於5位的整數,要求 1、求出它是幾位數 2、分別輸出每一位數字 3、按逆序輸出各位數字,例如原數為321,應輸出123 輸入 一個不大於5位的數字 輸出 三

題目描述

給出一個不多於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!