2012-04-15 17 views
-6

可能性の重複:
Identify the digits in a given number.数字の数字による数字の印刷方法は?

私は、文字列に変換することなく、数の各桁を印刷する必要があります。それが可能だ?たとえば :

int n = 1234; 
int x; 

while(??) { 
    x = ?? 
    printf("%d\n", x); 
} 

それは印刷します。

1 
2 
3 
4 

私はこれを行うにはどのようには考えています。前もって感謝します。

+2

あなたはそれを行うことができます!ルックアップモジュロ – Coffee

+8

宿題のようなにおいがする非常に基本的な質問。 – Lion

+1

しかし、とにかく、アイデアは文字列に変換せずにこれを行うことでした – ControlAltDel

答えて

3

これは宿題ではないと言わない限り、私は完全な答えを出しません。

x/10は、xの最後の桁を削除しています。したがって123/10 = 12,45/10 = 4など

x % 10は、xの最後の桁を示します。したがって123 % 10 = 3,45 % 10 = 5など

2

これは実際に数論/数学的手法に当てはまります。数字1234は、たとえば1x10^3 + 2x10^2 + 3x10^1 + 4x10^0と書くことができます。今度は%(mod)と/(整数除算)を使って各桁を抽出する方法について考えてみましょう。あなたは何千もの場所を検索する場合

2

あなたが最大桁数を知っている場合、あなたはそれを使用して行う/および%でき

ので、例えば、答えが


num =... 
int thousands = (num/1000) % 10 

することができますです実際にループでこれを行う

関連する問題