C语言 拆开了输出整数

目标:

输入一个正整数,然后把该整数的每一位数字从高位到低位顺序输出,每个数字占一行。

程序实现

方法一:
第一步:首先判断输入的是几位数
第二步:各位数拆开再输出

#include
#include
#include
// 函数splitNum:顺序输出n的各位数字,每个数字占一行
// 返回值:无
void splitNum(unsigned int n)
{
    //算出输入的是几位数 
    int a,b,c;   //定义三个变量
    c=n;
    for(int i=1;c!=0;i++)
	{
		c=c/10;
		a++;
	}
	//拆开整数 
	int d[a];
	c=a;
	for(int i=1;i<=c;i++)
	{
		b=pow(10,a-1);
		d[i]=n/b;
		n=n%b;
		a--;
		printf("%d\n",d[i]);
	}
}

int main()
{
    unsigned n;   //定义一个无符号的变量n 
    scanf("%u",&n);
    splitNum(n);     //调用splitNum函数,顺序输出n的各位数字
    return 0;
}

运行结果为:

9876
9
8
7
6

方法二:
第一步:首先从低位到高位拆开,存入到数组中
第二步:逆序输出

#include
#include
void splitNum(unsigned int n)
{
	//先顺序存储到a[]中 
	int a[10],b=0;
	for(int i=1;n!=0;i++)
	{
		a[i]=n%10;
		n=n/10;
		b++;
		//printf("%d\n",a[i]);
	}
	//反向输出
	for(;b>0;b--)
	{
		printf("%d\n",a[b]);
	} 
}
int main()
{
    unsigned n;   //定义一个无符号的变量n 
    scanf("%u",&n);
    splitNum(n);     //调用splitNum函数,顺序输出n的各位数字
    return 0;
}

运行结果为:

9876
9
8
7
6

你可能感兴趣的:(C语言,c语言)