1. 程式人生 > >任意輸入不超過6位的整型數,求數的位數,用switch語句輸出各個數,並逆序輸出的相關做法。c語言。

任意輸入不超過6位的整型數,求數的位數,用switch語句輸出各個數,並逆序輸出的相關做法。c語言。

1.先來看怎麼求一個整型數的位數。既然是整型,它除以10一定沒有小數。那麼依照此原理,將這個數除以10,直到這個數小於零,每除一次可以用count自加來計數,出完時將累加得的count輸出,就是這個整型數的位數。

2.再來看看如何用switch分支語句來輸出各個數:先看看switch的語法。

switch(表示式)

{

    case 常量:語句1;

    case 常量:語句2;

   ......

     case 常量:語句n;

   default:         語句n+1

}

表示式應該為整數型別,case後面跟的是常量,相當於一個具體的標籤,如果遇到這個標籤,就執行這個標籤後面的語句。default後的語句什麼情況下執行?當沒有碰到case中的常量時,就執行。有個注意的點,每個case子句後都應該有一個break語句,表示該分支執行完畢,跳出來。

在這個具體的情況下,表示式為count,為數的位數。當位數為分別為6 5 4 3 2 1時就對應應該case子句。

例如位數為六的情況,看看怎麼輸出各個位的數:

1.先輸出最高位的數,就用這個數除以100000,得到最高位,輸出。

2.用這個數mod100000,就得到把這個數最高位丟掉後,剩下的數。

3.用剩下的數除以10000,得到萬位,輸出。

4.用剩下的數mod10000,得到去掉前兩位後,剩下的數。

5.以此類推。

                總結一下:一個整型數除以它同位的1000......,,可以得到它的第一位數。一個整型數,mod於它同位的1000......可以得到丟下第一位後,剩下的數。

3.如何逆序輸出這些數?

1.將這個數mod10,得到最後一位(想想是不是?),直接輸出。

2.將這個數/10再mod10,/10就是把剛才的最後一位丟掉,再mod10就是輸出當前的最後一位,這次輸出的是不是就是倒數第二位?

3.以此類推。