如何打印一个数字的数字?

时间:2012-04-15 00:53:30

标签: c digits

  

可能重复:
  Identify the digits in a given number.

我需要打印数字的每个数字而不将其转换为字符串。这是可能的? 例如:

int n = 1234;
int x;

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

打印:

1
2
3
4

我不知道该怎么做。提前谢谢。

3 个答案:

答案 0 :(得分:3)

除非你告诉我这不是作业,否则我不会给出完整的答案。

请注意,x / 10会为您x删除最后一位数字。所以123 / 10 = 1245 / 10 = 4

请注意,x % 10会为您提供x的最后一位数字。所以123 % 10 = 345 % 10 = 5

答案 1 :(得分:2)

这实际上涉及数论/数学方法。例如,您可以将数字1234写为1x10^3 + 2x10^2 + 3x10^1 + 4x10^0。现在考虑如何使用%(mod)和/(整数除法)来提取每个数字。

答案 2 :(得分:2)

如果您知道最大位数,可以使用/和%

来完成

所以,例如,如果你想找到数千个地方,答案就是


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

你实际上可以在循环中执行此操作