题目描述

输入一个不大于10的9次方的正整数,从高位开始逐位分割并输出各位数字。

输入

输入一个正整数n,n是int型数据

输出

依次输出各位上的数字,每一个数字后面有一个空格,输出占一行。例如,输入 12345 ,输出 1 2 3 4 5

样例输入

12345

样例输出

1 2 3 4 5

提示

注意整数运算避免使用double类型的函数如pow()。
本题可先用一个循环计算出最高位的位权h,然后再用一个循环,循环内容为: 输出最高位(n/h)、扔掉最高位(n = n%h)、降低最高位位权(h = h/10),直到位权h为0。

代码

#include<stdio.h>
int main()
{
    int n, temp, base;
    scanf("%d", &n);
    temp = n;
    base = 1;
    while( temp > 9) 
    {
        temp /= 10; 
        base *= 10; 
    }
    while(base > 0) 
    {
        printf("%d ", n/base); 
        n %= base;
        base /= 10;
    }
    printf("\n");
    return 0;
}
版权声明: 本博客所有文章除特别声明外,均采用署名-非商业性使用-相同方式共享 4.0 国际CC BY-NC-SA 4.0 )许可协议。转载请注明出处!
最后修改:2019 年 10 月 29 日 02 : 25 PM
如果觉得我的文章对你有用,请随意赞赏