欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

正序分解整数(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;
 } 

正序分解整数(C)
正序分解整数(C)

改进

#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;
 } 

正序分解整数(C)
正序分解整数(C)