实验4-2-8 输出整数各位数字
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。
输入格式:
输入在一行中给出一个长整型范围内的非负整数。
输出格式:
从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。
输入样例:
123456
输出样例:
1 2 3 4 5 6
方案1:常规方法
#include <stdio.h>
#include<math.h>
int main()
{
long a;
scanf("%ld", &a);
long x=a;
int i=0;
if(!a)printf("%d ",a);
else{
while(x){
x/=10;
i++;//i表示数字位数
}
int number=1;//用于表示数字每一位
while(a){//a末位为0时会提前结束循环
number=a/(pow(10,--i));
printf("%d ",number);
a=a-number*(pow(10,i));
}
}
for(i;i>0;i--)//循环提前结束,i不为0。若循环正常结束,则i=0
printf("%d ",0);
return 0;
}
方案2:使用递归函数,此法无须考虑n末位是否为0
#include <stdio.h>
void reverse(int a);
int main()
{
long a;
scanf("%ld", &a);
reverse(a);
return 0;
}
void reverse(int n)
{
if(n<10)
printf("%d ",n);
else {
reverse(n/10);依次调用n的每一位
printf("%d ",n%10);
}
}
本文来自博客园,作者:下_冰雹,转载请注明原文链接:https://www.cnblogs.com/fastword/p/15834505.html

浙公网安备 33010602011771号