7-5 输出整数各位数字

本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。

输入格式:

输入在一行中给出一个长整型范围内的非负整数。

输出格式:

从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。

输入样例:

123456

输出样例:

1 2 3 4 5 6

我也是刚学,可能程序会很繁琐各位见谅。

#include<stdio.h>

int main()
{
    long n,count=0,m,f,flag1,flag2;//注意题目要求为长整型,这里我卡住了半天就是没好好看题,如果你也和我一样可能会报浮点错误的报错。
    scanf("%ld",&n);
    m=n;
    while(233)//负责计算输入的数字有多少位
    {   
        n/=10;
        count++;
        if(n==0)
        {
            break;
        }
    }
    n=m;
    flag1=pow(10,count);//初始化一个10的count次方
    flag2=flag1/10;//这个要比flag1小10倍用来做第二步的计算出每个位置的数字是几
    for(int i=1;i<=count;i++)//计算输出部分
    {
        if(flag2==0)//flag2==0则说明当前是最后一个数字,输出过后就可以结束程序了
        {
            
            f=(m%flag1);
            printf("%ld ",f);
            break;
        }
        f=(m%flag1)/flag2;
        flag1/=10;
        flag2/=10;
        printf("%ld ",f);
    }
    return 0;
}

更多推荐