首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Analasys程序的最大和最小以及模式和图形直方图

Analasys程序的最大和最小以及模式和图形直方图
EN

Stack Overflow用户
提问于 2018-05-31 07:09:49
回答 1查看 99关注 0票数 -1

嗨,在我的程序中,我想要显示数组中的平均值、最大值、最小值和模式。到目前为止,只有我的平均值有效,我的min和max方法都=我输入的第一个数字。例如,如果我说我想输入3个数字,我输入了12,15和6。最小值和最大值都会输出12,因为这是第一个输入的数字,这是错误的,所以请帮助我。这是我的代码。

代码语言:javascript
复制
    int amount;
    System.out.println(" Enter the amount of numbers you would like to enter: ");
    amount = scan.nextInt();

    int [] arr = new int [amount];
    int outcome = 1;

    for (int i = 0; i < arr.length; i++){
        System.out.println("Enter a number 1 through 50");
        outcome = scan.nextInt();
        arr [i] = outcome;

    }

    System.out.println(" ");

    System.out.println( " The average is" ); 
    System.out.println(average(arr));
    System.out.println(" ");

    System.out.println( " The lowest value in the array is " ); 
    System.out.println(min(arr));
    System.out.println(" ");

    System.out.println( " The largest value in the array is " ); 
    System.out.println(max(arr));
    System.out.println(" ");


}





public static double average ( int [] arr) {

    double sum = 0;
    int value = arr.length;
    for ( int i = 0; i < arr.length; i++){
        sum += arr [i];
    }
    sum = sum / value;
    return sum;



}

public static int min (int [] arr) {
        int shortest = 0;
        int smallest = 100;
        int length = arr.length;

     for ( int i = 0; i < arr.length; i ++ ) {
        if ( length < smallest)
        shortest += arr[i];
        smallest = arr.length;
     }

       return shortest;
   }

public static int max (int [] arr) {
    int largest = 0;
    int biggest = 0;
    int length = arr.length;

 for ( int i = 0; i < arr.length; i ++ ) {
    if ( length >  largest)
    biggest += arr[i];
    largest = arr.length;
 }

   return biggest;

}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 07:26:45

这将非常简单。min和max方法都返回12的原因是,您将max和min都设置为arr.length,因此只运行一次就会立即停止for循环。此外,对于这类问题,有更简单的实现。试着按照以下思路做一些事情:

代码语言:javascript
复制
public int getMax(int[] arr)
{
  int max = arr[0];  //To have a baseline
  for(int i = 1; i < arr.length; i++)
  {
    if(arr[i] > max)
    {
      max = arr[i];
    }
  }
  return max;
}

public int getMin(int[] arr)
{
  int min = arr[0];  //To have a baseline
  for(int i = 1; i < arr.length; i++)
  {
    if(arr[i] < min)
    {
      min = arr[i];
    }
  }
  return min;
}

这不仅可读性更好,而且执行起来也更容易。如果您有任何问题,请提出来:-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50614499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档