黑马程序员技术交流社区

标题: 最小值一直为0,什么原因? [打印本页]

作者: 李前进    时间: 2014-3-18 23:31
标题: 最小值一直为0,什么原因?
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.io.IOException;

  4. public class Compare
  5. {
  6.     public static void main(String[] args)
  7.     {
  8.          BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  9.                  int []a=new int[3];
  10.                  int min=a[0],max=a[0];

  11.          for(int i=0;i<a.length;i++)
  12.          {
  13.                   try
  14.                   {
  15.                           System.out.print("请输入第"+(i+1)+"个数:");
  16.                           a[i]=Integer.parseInt(br.readLine());
  17.                   }
  18.                   catch (IOException e)
  19.                   {   
  20.                           e.printStackTrace();
  21.                   }
  22.       }
  23.          
  24.          for(int i=0;i<a.length;i++)
  25.          {
  26.                  if(a[i]>max)
  27.                  {
  28.                          max=a[i];
  29.                  }   

  30.                  if(a[i]<min)
  31.                  {
  32.                          min=a[i];
  33.                  }
  34.          }

  35.          System.out.println("最大值为:"+max+"\n最小值为:"+min);

  36.     }
  37. }
复制代码

作者: 李前进    时间: 2014-3-18 23:44
应该加max=arr[0]; min=arr[0];可是为什么呢?谁给解释一下?       
作者: 乔钰博    时间: 2014-3-18 23:46
因为数组在初始化的时候全是0,所以你的min = a[0]一开始的值就是0,如果输入的数没有比0小的,最小值就是0.
作者: 李前进    时间: 2014-3-18 23:50
乔钰博 发表于 2014-3-18 23:46
因为数组在初始化的时候全是0,所以你的min = a[0]一开始的值就是0,如果输入的数没有比0小的,最小值就是0 ...

明白了。
作者: 戒爱    时间: 2014-3-19 00:45
如果,你输入一堆负数,那么你又会问为什么最大值怎么一直是0
应该把max、min的初始化值的位置放在数组已经有值的地方,放到下面就好了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2