//给定一个数字,顺序打印各个位上的数
//例如给定1234,分别顺序打印出1、2、3、4
//方法一:12334逆序出去4321是非常方便的,直接取取再取商即可,然后数组逆序输出。
int main()
{
int arr[10] = { -1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1};
//这里要注意,如果只写成arr[10] = {-1},数组是初始化成-1后面九个0,并不是全部都是-1.
int i = 1234;
int j = 0;
while (i > 0)
{
arr[j] = i % 10;
i = i / 10;
j++;
}
int length = sizeof(arr) / sizeof(arr[0]);//求数组长度的常用方法
int k = 0;
for (k = length - 1; k >= 0; k--)
{
if (arr[k] != -1)//值为-1的证明还是初始化的元素值,直接跳过不打印。
printf("%d\n", arr[k]);
}
}
//方法二:采用递归函数的思想
void print(int x)
{
if (x > 9)
{
print(x / 10);
}
printf("%d\n", x % 10);
}
int main()
{
int x = 1234;
print(x);
}