7-37 输出整数各位数字 (15分)
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。
输入格式:
输入在一行中给出一个长整型范围内的非负整数。
输出格式:
从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。
输入样例:
123456
输出样例:
1 2 3 4 5 6
一般的思路就是先得出这个数的位数,然后从高位开始分割,每个数字后面跟一个空格。特别需要注意的是对于边界数据比如0这些数的验证。
#include <stdio.h> int main() { int x; scanf("%d",&x); int t=x;
//x后面还要用,暂时先储存起来 int mask; if (t==0) mask=0;else mask=1; //0的时候要特判 while (t>9){
//这一段整个是得出位数 t /=10; mask *=10; } if (x==0) printf("%d ",0); while (mask!=0) {
//核心过程,万事俱备,注意while条件 t= x/mask; x %=mask; mask /=10; printf("%d ",t); } return
0; }