#include
#include
int main(){
int a,b,c,n,i,m;
printf("输入一个整数");
scanf("%d",&n);
i=1;
m=n;
while(n>10){
n/=10; //这里 少了一个等于号。导致死循环。
i*=10;
}
while(m>0){
n=m/i; //不要改变m值, 用n存储
m=m-n*i;
i/=10;
printf("%d\n",n);
}
return 0;
}
问题不少
算法上 最大的问题是pow返回的是double类型,转为int可能是不准确的。
在你算法基础上 最小改动 修改成这样。其实 这个用数组 或者递归做 更简单 。
#include
#include
int main()
{
int a,b,c,n,i,m;
printf("输入一个整数");
scanf("%d",&n);
i=-1;
m=n;
while(n>0)
{
n=n/10;
i++;
}
while(m>=10)
{
m=m/pow(10,i);
i--;
printf("%d\n",m);
m=m/10;
}
return 0;
}