【问题标题】:code for min max using array in java without any import [closed]在没有任何导入的情况下在java中使用数组的最小最大值代码[关闭]
【发布时间】:2014-07-12 16:27:25
【问题描述】:
class test3
{
    public static void main(String[] z)
    {
        int a[]={123456789};    
        for(int i=0;i<=a.length;i++)
        {
            System.out.println("hello");
            if(a[i]<=a[i])             //is this a right way
               System.out.println("min"+a[i]);
            if(a[i]>=a[i-1])           //is this a right way
               System.out.println("max="+a[i]);
            else
               System.out.println("error");
            }
         }
     }

在线程“main”中出现以下异常

java.lang.arrayindexoutofbound exception -1 at test3.main(test3.java:9)

【问题讨论】:

标签: java arrays


【解决方案1】:

坦率地说,你的代码有很多问题,但如果我理解你的目标,你想要类似的东西

int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // <-- declare an array.
int min = a[a.length - 1];               // <-- set an initial min.
int max = a[0];                          // <-- set an initial max.
if (min > max) {                         // <-- check if they're reversed,
  min = a[0];                            //     if so swap them.
  max = a[a.length - 1];
}
for (int i = 1; i < a.length - 1; i++) { // <-- loop
  if (a[i] < min)                        // <-- is a[i] less then min,
    min = a[i];                          //     if so update min.
  if (a[i] > max)                        // <-- is a[i] greater then max,
    max = a[i];                          //     if so update max.
}
System.out.printf("min = %d, max = %d%n", min, max);

【讨论】:

  • wt 如果我声明 int min 或 max 为零.. lyk int min=0;
  • 你需要改变上面循环的边界。
  • 你能用简单的例子来解释一下吗..?
  • 其实,没关系,这行不通。 0 小于数组中的所有内容,因此 min 按您的方式为零。
  • ohk.. thnks 先生.. 顺便说一句,我正在编写我的程序..
【解决方案2】:

使用以下方法求最大值和最小值。

对于 MAX:

public static int getMaxValue(int[] numbers){
  int maxValue = numbers[0];
  for(int i=1;i < numbers.length;i++){
    if(numbers[i] > maxValue){
      maxValue = numbers[i];
    }
  }
  return maxValue;
}

对于 MIN:

public static int getMinValue(int[] numbers){
  int minValue = numbers[0];
  for(int i=1;i<numbers.length;i++){
    if(numbers[i] < minValue){
      minValue = numbers[i];
    }
  }
  return minValue;
}

【讨论】:

    【解决方案3】:
    public static void main(String[] z)
        {
            int a[]={1,2,3,4,5,6,7,8,9};//first error initialize the array like this
            int min =0;
            int max =0;
            min = a[0];//1
            for(int i=1;i<a.length;i++)//2
            {
                if(a[i]<min)
                {
                    min =a[i];
                }
            }
            System.out.println("min "+min);
            max = a[0];//3
            for(int i=1;i<a.length;i++)//4
            {
                if(a[i]>max)
                {
                    max =a[i];
                }
            }
            System.out.println("max : "+max);
        }
    

    1.初始化变量 min 以在 a[0] 处包含数组的值

    2.遍历数组并检查数组是否包含值小于然后初始化如果是然后将该值分配给min并最终显示min

    3.初始化变量 max 以在 a[0] 处包含数组的值

    4.遍历数组并检查数组是否包含更大的值,如果是则初始化,然后将该值分配给最大值,最后显示最大值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 2019-09-23
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 2020-03-02
      • 1970-01-01
      相关资源
      最近更新 更多