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