-6

重複の可能性:
指定された数字の桁を特定します。

文字列に変換せずに数値の各桁を印刷する必要があります。それが可能だ?例えば:

int n = 1234;
int x;

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

それは印刷します:

1
2
3
4

これを行う方法がわかりません。前もって感謝します。

4

3 に答える 3

3

これは宿題じゃないと言ってくれない限り、私は完全な答えは出しません。

x / 10最後の桁がx取り除かれていることに注意してください。など123 / 10 = 12_ 45 / 10 = 4_

x % 10の最後の桁が得られることに注意してくださいx。など123 % 10 = 3_ 45 % 10 = 5_

于 2012-04-15T00:58:10.277 に答える
2

これは実際に数論/数学的方法に触れています。たとえば、1234 という数字は のように記述できます1x10^3 + 2x10^2 + 3x10^1 + 4x10^0%次に、(mod) と/(整数除算) を使用して各桁を抽出する方法を考えてみましょう。

于 2012-04-15T00:58:29.927 に答える
2

最大桁数がわかっている場合は、/ と % を使用してそれを行うことができます

たとえば、千の位を求めたい場合、答えは


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

あなたは実際にこれをループで行うことができます

于 2012-04-15T01:00:29.060 に答える