-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) 和/(integer division) 来提取每个数字。

于 2012-04-15T00:58:29.927 回答
2

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

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


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

您实际上可以循环执行此操作

于 2012-04-15T01:00:29.060 回答