从键盘输入0~9之内的4个整数,计算由这4个整数组合成的整数的最大值和最小值。若输入的不是整数则输出“number input error”若输入的整数不是0~9范围内则输出“Numerical range error”
输入格式:
从键盘输入0~9之内的4个整数,以空格分割
输出格式:
对每一组输入,在一行中输出两个整数,最大值和最小值。
输入样例:
1 5 9 3
输出样例:
9531 1359
输入样例:
1 5 a 9
输出样例:
number input error
输入样例:
1 5 10 9
输出样例:
Numerical range error
思路:输入成数组,然后利用sort排序,如果输入不是数字,则抛出异常,输出错误相应的语句
第一次写的时候我直接按照数组的排序,按照字符串输出
结果就造成了如果输入的是
0 0 0 0
0 1 2 4
这样的数字,就输出 ,不符合数字的规范,
0000
0124
后来我索性直接给他数字输出,问题解决,所有的点位也都能通过
答案如下
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try { //异常处理
Scanner scanner = new Scanner(System.in);
int[] a = new int[4];
for(int i=0;i<4;i++){
a[i] = scanner.nextInt();
if(a[i]>9||a[i]<0){ //如果不是 0-9
System.out.print("Numerical range error\n");
return;
}
}
Arrays.sort(a);//数组内容排序
//输出最大值
int max =a[3]*1000+a[2]*100+a[1]*10+a[0];
int min = a[0]*1000+a[1]*100+a[2]*10+a[3];
System.out.print(max);
System.out.print(" ");
System.out.print(min);
}
catch (Exception e){ //如果不是数字
System.out.print("number input error\n");
}
}}