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