目标:
输入一个正整数,然后把该整数的每一位数字从高位到低位顺序输出,每个数字占一行。
程序实现
方法一:
第一步:首先判断输入的是几位数
第二步:各位数拆开再输出
#include<stdio.h>
#include<iostream>
#include<math.h>
// 函数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<stdio.h>
#include<iostream>
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