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
答案 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),然后迭代该字符串,一次打印一个字符。