从左到右打印整数n的数字

时间:2017-10-22 06:15:32

标签: c

int main()
{
    while (n != 0)
    {
        digit = n / 10;
        n = n / 10;
        printf("%d ", digit);
    }
    _getch();
    return 0;
}

标题

//////////////////////////////////// 输入1234,输出1 2 3 4.但我有一个零问题,如果我输入0123,输出只有1 2 3

2 个答案:

答案 0 :(得分:0)

如果要打印前导零,则无法将输入转换为数字,因为这将“删除”前导零。您需要将输入保留为文本。

像:

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char in[100];
    int i = 0;
    if (fgets(in, 100, stdin))
    {
        for (i=0; in[i] != '\0'; ++i)
        {
            if (isdigit(in[i]))
            {
                printf("%d ", in[i]-'0');
            }
            else
            {
                 // Not a digit - add error handling here
            }
        }
    }
    return 0;
}

答案 1 :(得分:0)

这看起来像是家庭作业,所以我不会为你编写代码,但我可以告诉你算法。将n转换为字符串(请参阅itoa),然后迭代该字符串,一次打印一个字符。