为啥我这个不对
int main()
{
int n,i=1,g,m,p;
scanf("%d",&n);
while(n/10>0){
n=n/10;
i++;
} p=i-1;
for(g=1;g<=i;g++){
m=n/((int)pow(10,p));
printf("%d ",m);
n%=(int)pow(10,p);
p--;
}
reruen 0;
}
return 写错了
while循环之后n成个位数了,应该用别的变量代替n来除以10计算位数
#include<stdio.h>
#include<math.h>
int main()
{
int n,b, i = 1, g, m, p;
scanf("%d", &n);
b = n;
while (b / 10 > 0)
{
b = b / 10;
i++;
}
p = i - 1;
for (g = 1; g <= i; g++)
{
m = n / ((int)pow(10, p));
printf("%d ", m);
n %= (int)pow(10, p);
p--;
}
return 0;
}
如有帮助,望采纳!谢谢!
这个题非常适合用递归来实现,很简洁,几行代码就行
#include <stdio.h>
void dg(int n)
{
if(n==0)
return;
dg(n/10);
printf("%d ",n%10);
}
int main()
{
int n;
scanf("%d",&n);
dg(n);
return 0;
}