- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- public class Test8 {
- /**
- * 输入一个数字组成的数组,输出该数组的最大值和最小值 思路:
- * 1,输入源:System.in
- * 2,以字符串的形式,通过键盘把数据输入,以“,”分割字符表示不同的数据
- * 3,切割所字符串,并把结果存入字符数组中。
- * 4,把字符数组中的字符串转为对应的数值,并存入一个数组中; 5,编写一个查找组中最大最的方法,以及一个查找最小值的方法
- *
- * @throws IOException
- */
- public static void main(String[] args) {
- // 建立输入流,读取键盘输入
- BufferedReader bufr = new BufferedReader(new InputStreamReader(
- System.in));
- StringBuilder sb = new StringBuilder();
- String line = null;
- // 通过StringBuilder容器,接收键盘录入
- try {
- while ((line = bufr.readLine()) != null) {
- // 当输入“over”表示输入结束
- if ("over".equals(line))
- break;
- sb.append(line);
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- bufr.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- // 切割字符串
- String[] arrs = sb.toString().split(",");
- // 把字符串数组,转换成对应的int型数组
- int[] arr = new int[arrs.length];
- System.out.print("输入的数组为:[");
- for (int i = 0; i < arr.length; i++) {//这里有错
- arr[i] = Integer.parseInt(arrs[i]);//arr
-
- if(i<arr.length-1)
- System.out.print(arr[i]+",");
- else
- System.out.println(arr[i]+"]");
- }
- System.out.println();
- //int irr[] = { 12, 45, 67, 23 };
- // 打印数组中的最大值及最小值
- System.out.println("min=" + getMin(arr));// 如放有getMax前就能打印出正确结果
- System.out.println("max=" + getMax(arr));
- System.out.println("min=" + getMin(arr));// 如放有getMax后就能打印出错误的结查,好像没拿第一位比较
- // 如:输入12,45,67,23
- // over
- // 打印出:12 45 67 23
- // min=12
- // max=67
- // min=23
- // 同一个数组,两次结果不一样
- }
- /**
- * 定义一个获取数组中最大值的方法
- *
- * @param arr
- * @return
- */
- public static int getMax(int[] arr) {
- int max = 0;
- for (int i = 0; i < arr.length; i++)
- if (arr[i] > arr[max]) {
- int temp = arr[i];//这里有错
- arr[i] = arr[max];
- arr[max] = temp;
-
- }
- return arr[max];
- }
- /**
- * 定义一个获取数组中最小值的方法
- *
- * @param arr
- * @return
- */
- public static int getMin(int[] arr) {
- int min = 0;
- for (int i = 1; i < arr.length; i++) {
- // System.out.println("min:"+arr[min]);
- if (arr[min] > arr[i]) {
- // System.out.println("min:"+arr[min]+"arr["+i+"]"+arr);
- int temp = arr[i];//这里有错
- arr[i] = arr[min];
- arr[min] = temp;
- }
- }
- return arr[min];
- }
- }
复制代码 |