正序分解整数(C)
程序员文章站
2022-03-22 16:25:38
...
0结尾错误范例:
#include <stdio.h>
int main()
{
int n,d;
int x=1;
scanf("%d",&n);
int num=0;
while(n>0)
{
int a=n%10;//末位
n=n/10;//除了末位
num=num*10+a;
}//逆序
// printf("%d",num);
n=num;
while(n>0)
{
d=n%10;
printf("%d",d);
if(n>10)
printf(" ");
n=n/10;
}//逆序分解
return 0;
}
改进
#include <stdio.h>
int main()
{
/* 12345
12345/10000=1---
12345%10000=2345
10000/10=1000
2345/1000=2---
2345%1000=345
1000/10=100
345/100=3---
345%100=45
100/10=10
45/10=4---
45%10=5
10/10=1
5/1=5---*/
int n,m,t;
int cnt=0;
scanf("%d",&n);
t=n;//防止上一个循环影响下一个循环n的值
while(t>0)
{
t/=10;
cnt++;//计数器,输入位数
}
printf("%d",cnt);
m=pow(10,cnt-1);//分母
printf("\n");
while(m>0)
{
int d=n/m;
printf("%d ",d);
n=n%m;
m=m/10;
}
return 0;
}
上一篇: Windows和Linux下定时删除某天前的文件的脚本
下一篇: 正序分解整数