c语言输入一个整数怎么分别输出它的每位上的数字

用函数解决,就是比如我输入4567,程序的输出就是4(接着是空格两个,以下同此)5 6 7
我只学到函数而已 下面是我自己做的 可是输入一个三位数 程序就错了 为什么?
#include <stdio.h>
#include <math.h>

void F ( int n, int i);

int main()
{
int a,sum,k,j = 0;
printf("输入: ");
scanf("%d",&a);
k=a;
for( j = 0; sum != 0; j++ )
{
sum = k /10;
k = k /10;
}
printf("位数是多少: %d\n",j);
F( a,j );
system("pause");
return 0;
}

void F ( int n, int i)
{
int x,c = pow(10,i-1);
while ( n>0 )
{
x = n / c;
n = n % c;
c = c / 10;
printf("%d ",x);
}
}

第1个回答  2019-02-26
#include
<stdio.h>
void
prt(int
n)
{
if(n>10)
prt(n/10);
printf("%d\t",n%10);
}
int
main(void)
{
int
a=4567;
prt(a);
return
0;
}