作者 颜晖
单位 浙大城市学院
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。
输入格式:
输入在一行中给出一个长整型范围内的非负整数。
输出格式:
从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。
输入样例:
123456
输出样例:
1 2 3 4 5 6
解题思路:输入要求用长整型long int,对于这种分割数字的要求,我们都是写一个循环,每次%10取最后一个数字,题目要求从高位开始输出,所以我们可以用一个数组取接收%10后的数字,然后从数组的最后一个开始往前输出。
注意一点:一般情况,循环结束是看要处理的数字是否为0,所以还要单独考虑输入为0的情况。
代码实现:
#include<stdio.h>
int main() {
long int a;
int i=0, j;
int arr[12];
scanf("%ld", &a);
if (a == 0) {
printf("%ld ",a);
}
else
{
while (a) {
arr[i++] = a % 10;
a /= 10;
}
for (j = i-1; j >= 0; j--)
printf("%d ", arr[j]);
}
return 0;
}
测试结果: