A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谢洋 高级黑马   /  2013-3-13 08:58  /  1806 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 谢洋 于 2013-3-13 10:26 编辑

好像删不了,只能清空

点评

代码编辑不规范,无法给分。  发表于 2013-3-13 09:37

8 个回复

倒序浏览
楼主的代码有点乱,我拷贝过来编译都不通过。。
修改了下,楼主看看吧。
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;

  4. public class Test {
  5.         /**
  6.          * 输入一个数字组成的数组,输出该数组的最大值和最小值 思路: 1,输入源:System.in
  7.          * 2,以字符串的形式,通过键盘把数据输入,以“,”分割字符表示不同的数据 3,切割所字符串,并把结果存入字符数组中。
  8.          * 4,把字符数组中的字符串转为对应的数值,并存入一个数组中; 5,编写一个查找组中最大最的方法,以及一个查找最小值的方法
  9.          *
  10.          * @throws IOException
  11.          */
  12.         public static void main(String[] args) {

  13.                 // 建立输入流,读取键盘输入
  14.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(
  15.                                 System.in));

  16.                 StringBuilder sb = new StringBuilder();
  17.                 String line = null;
  18.                 // 通过StringBuilder容器,接收键盘录入
  19.                 try {
  20.                         while ((line = bufr.readLine()) != null) {
  21.                                 // 当输入“over”表示输入结束
  22.                                 if ("over".equals(line))
  23.                                         break;
  24.                                 sb.append(line);
  25.                         }
  26.                 } catch (IOException e) {
  27.                         e.printStackTrace();
  28.                 } finally {
  29.                         try {
  30.                                 bufr.close();
  31.                         } catch (IOException e) {
  32.                                 e.printStackTrace();
  33.                         }
  34.                 }

  35.                 // 切割字符串
  36.                 String[] arrs = sb.toString().split(",");

  37.                 // 把字符串数组,转换成对应的int型数组
  38.                 int[] arr = new int[arrs.length];
  39.                 for (int i = 0; i < arr.length; i++) {
  40.                         arr[i] = Integer.parseInt(arrs[i]);//这里应该这样写,要带下标。。。
  41.                         System.out.print(arr[i] + " ");
  42.                 }
  43.                 System.out.println();
  44.                 // 打印数组中的最大值及最小值
  45.                 System.out.println("min=" + getMin(arr));
  46.                 System.out.println("max=" + getMax(arr));
  47.                 System.out.println("min=" + getMin(arr));

  48.         }

  49.         /**
  50.          * 定义一个获取数组中最大值的方法
  51.          *
  52.          * @param arr
  53.          * @return
  54.          */
  55.         public static int getMax(int[] arr) {
  56.                 int max = 0;//初始最大为0
  57.                 for (int i = 0; i < arr.length; i++){
  58.                         if (arr[i] > max) {//数组中有比它大的就替换最大值
  59.                                 max = arr[i];
  60.                         }
  61.                 }
  62.                 return max;
  63.         }

  64.         /**
  65.          * 定义一个获取数组中最小值的方法
  66.          *
  67.          * @param arr
  68.          * @return
  69.          */
  70.         public static int getMin(int[] arr) {
  71.                 int min = 10000;//初始最小为10000
  72.                 for (int i = 0; i < arr.length-1; i++) {
  73.                        
  74.                         if (arr[i] < min) {//比10000小,则替换最小
  75.                                
  76.                                 min = arr[i];
  77.                         }
  78.                 }

  79.                 return min;
  80.         }
  81. }
复制代码
打印效果:
10,12,52,89,45
over
10 12 52 89 45
min=10
max=89
min=10

评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

回复 使用道具 举报
严格来讲,比较大小那里初始化最大最小值不严谨。。
但是修改后的代码。完成了楼主的需求,希望能帮到你。。
回复 使用道具 举报
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;

  5. public class Test8 {
  6.         /**
  7.          * 输入一个数字组成的数组,输出该数组的最大值和最小值 思路:
  8.          *  1,输入源:System.in
  9.          *  2,以字符串的形式,通过键盘把数据输入,以“,”分割字符表示不同的数据
  10.          *  3,切割所字符串,并把结果存入字符数组中。
  11.          *  4,把字符数组中的字符串转为对应的数值,并存入一个数组中; 5,编写一个查找组中最大最的方法,以及一个查找最小值的方法
  12.          *
  13.          * @throws IOException
  14.          */
  15.         public static void main(String[] args) {

  16.                 // 建立输入流,读取键盘输入
  17.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(
  18.                                 System.in));

  19.                 StringBuilder sb = new StringBuilder();
  20.                 String line = null;
  21.                 // 通过StringBuilder容器,接收键盘录入
  22.                 try {
  23.                         while ((line = bufr.readLine()) != null) {
  24.                                 // 当输入“over”表示输入结束
  25.                                 if ("over".equals(line))
  26.                                         break;
  27.                                 sb.append(line);
  28.                         }
  29.                 } catch (IOException e) {
  30.                         e.printStackTrace();
  31.                 } finally {
  32.                         try {
  33.                                 bufr.close();
  34.                         } catch (IOException e) {
  35.                                 e.printStackTrace();
  36.                         }
  37.                 }

  38.                 // 切割字符串
  39.                 String[] arrs = sb.toString().split(",");

  40.                 // 把字符串数组,转换成对应的int型数组
  41.                 int[] arr = new int[arrs.length];
  42.                 System.out.print("输入的数组为:[");
  43.                 for (int i = 0; i < arr.length; i++) {//这里有错
  44.                         arr[i] = Integer.parseInt(arrs[i]);//arr
  45.                        
  46.                         if(i<arr.length-1)
  47.                                 System.out.print(arr[i]+",");
  48.                         else
  49.                                 System.out.println(arr[i]+"]");
  50.                 }
  51.                 System.out.println();
  52.                 //int irr[] = { 12, 45, 67, 23 };
  53.                 // 打印数组中的最大值及最小值
  54.                 System.out.println("min=" + getMin(arr));// 如放有getMax前就能打印出正确结果
  55.                 System.out.println("max=" + getMax(arr));
  56.                 System.out.println("min=" + getMin(arr));// 如放有getMax后就能打印出错误的结查,好像没拿第一位比较
  57.                 // 如:输入12,45,67,23
  58.                 // over
  59.                 // 打印出:12 45 67 23
  60.                 // min=12
  61.                 // max=67
  62.                 // min=23
  63.                 // 同一个数组,两次结果不一样

  64.         }

  65.         /**
  66.          * 定义一个获取数组中最大值的方法
  67.          *
  68.          * @param arr
  69.          * @return
  70.          */
  71.         public static int getMax(int[] arr) {
  72.                 int max = 0;
  73.                 for (int i = 0; i < arr.length; i++)
  74.                         if (arr[i] > arr[max]) {
  75.                                 int temp = arr[i];//这里有错
  76.                                 arr[i] = arr[max];
  77.                                 arr[max] = temp;
  78.                                
  79.                         }
  80.                 return arr[max];
  81.         }

  82.         /**
  83.          * 定义一个获取数组中最小值的方法
  84.          *
  85.          * @param arr
  86.          * @return
  87.          */
  88.         public static int getMin(int[] arr) {
  89.                 int min = 0;
  90.                 for (int i = 1; i < arr.length; i++) {
  91.                         // System.out.println("min:"+arr[min]);
  92.                         if (arr[min] > arr[i]) {
  93.                                 // System.out.println("min:"+arr[min]+"arr["+i+"]"+arr);
  94.                                 int temp = arr[i];//这里有错
  95.                                 arr[i] = arr[min];
  96.                                 arr[min] = temp;
  97.                         }
  98.                 }

  99.                 return arr[min];
  100.         }
  101. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

回复 使用道具 举报

咋都删不了

本帖最后由 谢洋 于 2013-3-13 10:28 编辑

咋都删不了

点评

晕了,都41技术分了,怎么会写这样的错误呢  发表于 2013-3-13 10:08
如果是基础测试的话,不建议拿到论坛上来问,等你看了视频自然能搞的明明白白  发表于 2013-3-13 10:07
回复 使用道具 举报
代码贴出来后才变得乱七八糟的,不是我干,系统干的

点评

你不知道编辑的时候选择插入代码?  发表于 2013-3-13 10:28
回复 使用道具 举报
谢洋 高级黑马 2013-3-13 10:17:52
7#

不要了

本帖最后由 谢洋 于 2013-3-13 10:32 编辑

不要了
回复 使用道具 举报
谢洋 高级黑马 2013-3-13 10:22:43
8#
谢洋 发表于 2013-3-13 10:05
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;

谢谢,我是提交后才拿出来,也不一定技术分高就代表什么都能搞得明白,就是搞不明才拿出来的,那好吧,我把贴子删了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马