当前位置: 首页 > 知识库问答 >
问题:

需要Java数组帮助使用扫描仪类输出平均和排序方法

陶星波
2023-03-14

过了几个小时,在做一个输出平均值的方法上还没有进展,还需要做一个排序类,总体来说,作业需要。

开发方法以:

    < Li >“main”方法打印数组 < li >对数组排序 < li >确定最大值 < li >确定最低值 < li >计算平均值(双精度)
import java.util.Scanner;

public class Arrayassignment {

public static void main(String[] args) {
   Scanner sin=new Scanner(System.in);

System.out.println("Enter an intiger for array size.");

int number= sin.nextInt();

int array[]=new int[number];

System.out.println("Array size " + number + " initiated.\n");


System.out.println("Now enter the array intigers");
for (int i = 0; i < number; i++)
{  
    array[i]=sin.nextInt();

 }

System.out.println ("The highest number in the array is " + max (array) );
System.out.println ("The smallest number in the array is " + min (array) );
//System.out.println ("The average of the numbers in the array is " ;
}
public static int max ( int ... arg )
{
 if ( arg.length == 0) 
 { 
   System.out.println(" empty arguement list ")  ;
   return 0;
 }
 int largest = arg [0];
 for (int i = 1; i < arg.length; i++ )
 {
   if (arg [i] > largest)
       largest = arg[i];
 }
 return largest;
 }

 public static int min ( int ... arg )
 {
 if ( arg.length == 0) 
 { 
   System.out.println(" empty arguement list ")  ;
   return 0;
 }
 int smallest = arg [0];
 for (int i = 1; i < arg.length; i++ )
 {
   if (arg [i] < smallest)
       smallest = arg[i];
 }
 return smallest;

共有3个答案

吕征
2023-03-14

在Java8中,您可以使用IntStreamIntSummary统计数据,例如

int[] arr = { 3, 1, 2 };
IntSummaryStatistics stats = IntStream.of(arr).summaryStatistics();
System.out.printf("Min: %d, Max: %d, Average: %.2f%n", //
        stats.getMin(), stats.getMax(), stats.getAverage());
IntStream.of(arr).sorted().forEach(System.out::println);
曾山
2023-03-14

要对查找最小和最大进行排序,您可以使用TreeSet集合类。如果您使用的是原始类型或包装类,在这种情况下无需添加任何比较逻辑。否则您需要实现比较器或可比方法。这是用于最小和最大数据http://www.programcreek.com/2009/02/a-simple-treeset-example/的TreeSet示例。对于计算平均值,我建议您可以使用局部变量,并且每次向TreeSet添加数字时,您都可以更新平均值。例如,当您将新数字p添加到当前平均值v时,将最新平均值计算为v=(v*size p)/size;

海宁
2023-03-14
int sum = 0;
for (int d : arg ) sum += d;
double average = 1.0d * sum / arg .length;

这将帮助您找到平均。。。

 类似资料:
  • 我有一个方法来输出最高值,最低值,平均值,我需要一个排序方法。我曾试图提出所谓的“冒泡法”,但并不奏效。有人知道我可以使用的其他排序方法吗?

  • 我还有其他输出值的代码,如min、max和average。我不知道如何在用户通过扫描仪输入的排序数组中输出值。

  • 我似乎无法从用户输入的分数中计算出平均分数。我也不能让它停止例外输入大于100或小于0。有人能告诉我我做错了什么吗?谢谢

  • 这个代码中的对象扫描仪有什么问题? 当我选择案例2时,我得到了这个错误: 我认为scanner首先声明为int,现在在切换之后,我用类型double收集答案。我不太确定,我需要更多地了解scanner类是如何工作的。

  • 我正在尝试将Scandit条码扫描SDK集成到React Native项目中。 SDK可用于iOS和Android,但我没有获得React-Native的SDK。 我已经下载了iOS和Android的测试Scandit条码扫描器SDK。 我尝试将iOS SDK框架集成到Xcode中,但无法将其与React Native链接。 我尝试了以下链接:http://docs.scandit.com/4.1

  • 我想对我的文件内容进行排序。我的文件内容是学生姓名,他们的学生编号,他们的班级,他们的成绩。这些数据由“;”分隔。首先,我需要计算平均值和字母等级。我已经计算过了,但是我需要将所有内容写入另一个文件,顺序必须是最高等级到最低等级。我该怎么办?