PTA 翁恺 7-37 输出整数各位数字

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

输入格式:

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

输出格式:

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

输入样例:

123456
 
结尾无空行

输出样例:

1 2 3 4 5 6

整体思路

拆数字是一段经典代码, 但略微有瑕疵,0是拆不了的,一定要记得讨论这种特殊情况

整体代码:

#include <stdio.h>
#include <math.h>

int main (void){
    double input = 0;
    scanf ("%lf",&input);
    int i = 0,num = 0;
    int a[20] = {0};
    int new_input = input;
    if (new_input == 0){
        printf ("%d ",new_input);
        return 0;
    }
    for (i = 0;i < 20;++i){
        if ((input >= pow(10,i))&&(input < pow(10,i+1)))
        {
            num = i + 1;
        }
    }
    for (i = 0;i < num;++i){
        a[i] = input / pow(10,num - i -1);
        input = input - a[i] * pow(10,num - i- 1);
    }
    for (i = 0;i < num;++i){
        printf("%d ",a[i]);
    }
    return 0;
}

 

讨论:注意空格

posted @ 2021-10-19 20:42  海萌萌萌萌萌萌  阅读(173)  评论(0)    收藏  举报