java例题_24 逆向输入数字
1 /*24 【程序 24 根据输入求输出】
2 题目:给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
3 */
4
5 /*分析
6 * 首先从键盘得到一个正整数,不超过5位数用int;
7 * 用%和/将每个数字分离后存入数组,位数就是数组的角标+1,用for循环正向输出数组
8 * 分离时用while判断是否分离完成
9 * */
10
11 package homework;
12
13 import java.util.InputMismatchException;
14 import java.util.Scanner;
15
16 public class _24 {
17
18 public static void main(String[] args) {
19 //声明x用来存放输入的数
20 int x;
21 while (true) {
22 System.out.println("请输入一个不多于 5 位正整数:");
23 try {
24 // 从键盘得到一个正整数
25 Scanner sc = new Scanner(System.in);
26 x = sc.nextInt();
27 if ((x > 0) & (x <= 99999)) // 判断是否为5位数以内的正整数
28 break;
29 } catch (InputMismatchException e) { // 捕获输入异常
30 System.out.println("输入错误:" + e.toString());
31 }
32 }
33 // 初始化一个数组用来存放每个数字
34 int num[] = new int[5];
35 int i = 0; // 数组角标
36 // 分离数字
37 while (x > 0) {
38 num[i] = x % 10;
39 i++; // 最后一步多加了个1
40 x = x / 10;
41 }
42 i = i - 1; // 多加的1减掉
43 System.out.println("这是一个" + (i + 1) + "位数,逆向输出每个数字为:");
44 for (int j = 0; j <= i; j++) {
45 System.out.print(num[j]);
46 }
47 }
48
49 }