老师帮忙看看

来源:2-7 案例:求数组元素的最大值

慕仔0431810

2019-10-07 22:59:08

package math;

import java.util.Scanner;

public class breakdemo {
 public static void main(String[] args) {


  int[] array=new int[5];
  Scanner sc=new Scanner(System.in);
  
    int max=array[0];
    int min=array[0];

    
  for(int i=0;i<array.length;i++)
  {  System.out.println("请输入第"+(i+1)+"数:");
   array[i]=sc.nextInt();
  }
   
 
  for(int i=1;i<array.length;i++)
  {
   if(max<array[i])
      max=array[i];
  }
    System.out.println("最大值为:"+max);
   
    for(int i=1;i<array.length;i++)
    {
     if(min>array[i])
        min=array[i];
    }
      System.out.println("最小值为:"+min);
  
}
}


以上代码可以输出最大值和最小值,但是会有问题,数值不对;当我把int max 和int min放在下面就可以输出正确的最大值和最小值,这是为什么啊,想了半天了


package math;

import java.util.Scanner;

public class breakdemo {
 public static void main(String[] args) {

  
  
  int[] array=new int[5];
  Scanner sc=new Scanner(System.in);
 
  for(int i=0;i<array.length;i++)
  {  System.out.println("请输入第"+(i+1)+"数:");
   array[i]=sc.nextInt();
  }
   
    int max=array[0];
    int min=array[0];

  
  for(int i=1;i<array.length;i++)
  {
   if(max<array[i])
      max=array[i];
  }
    System.out.println("最大值为:"+max);
   
    for(int i=1;i<array.length;i++)
    {
     if(min>array[i])
        min=array[i];
    }
      System.out.println("最小值为:"+min);
  
}
}


换到上面和下面有什么区别

写回答

1回答

好帮手慕小班

2019-10-08

同学你好,1、首先 int[] array=new int[5];是声明一个数组array,声明后数组中的每个元素默认为0,例如;

http://img.mukewang.com/climg/5d9c28f80950c72a05050295.jpg

    2、将 int max=array[0];  int min=array[0]; 赋值语句放在array[i] = sc.nextInt();赋值语句之前,获取到的数组元素的默认值0,在min最小值的比较中,0比输入的数据小,最后得到的最小值min就是0.

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

1

0 学习 · 11489 问题

查看课程