可能重复:
识别给定数字中的数字。
我需要打印每个数字而不将其转换为字符串。这是可能的?例如:
int n = 1234;
int x;
while( ?? ) {
x = ??
printf("%d\n", x);
}
它打印:
1
2
3
4
我不知道该怎么做。提前致谢。
可能重复:
识别给定数字中的数字。
我需要打印每个数字而不将其转换为字符串。这是可能的?例如:
int n = 1234;
int x;
while( ?? ) {
x = ??
printf("%d\n", x);
}
它打印:
1
2
3
4
我不知道该怎么做。提前致谢。
除非你告诉我这不是家庭作业,否则我不会给出完整的答案。
请注意,这x / 10
会让您x
去掉最后一位数字。所以123 / 10 = 12
,45 / 10 = 4
等
请注意,这x % 10
给了你的最后一位数字x
。所以123 % 10 = 3
,45 % 10 = 5
等
这实际上涉及数论/数学方法。例如,您可以将数字 1234 写为1x10^3 + 2x10^2 + 3x10^1 + 4x10^0
。现在考虑如何使用%
(mod) 和/
(integer division) 来提取每个数字。
如果您知道最大位数,则可以使用 / 和 %
例如,如果你想找到数千个地方,答案是
num =...
int thousands = (num / 1000) % 10
您实际上可以循环执行此操作