计算输入数字的总和和平均值,并在Eclipse中对数字进行排序

时间:2018-09-20 14:53:57

标签: java arrays eclipse for-loop

问题:编写一个程序,读取用户的五个整数。程序将计算并输出

有关这五个数字的以下统计信息:

The sum of all of the positive numbers (greater than zero).

The sum of all of the non-positive numbers (less than or equal to zero).

The sum of all five numbers.

The average of all of the positive numbers (greater than zero).

The average of all of the non-positive numbers (less than or equal to zero).

The average of all five numbers.

这里是我的代码:

package assignment_09_20_2018;

import java.util.Scanner ; 

public class LAB_Assignment_09_20_2018 {

    public LAB_Assignment_09_20_2018() {
        // TODO Auto-generated constructor stub


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int length; 

        Scanner input = new Scanner(System.in) ;
        //opens scanner

        System.out.println("Enter 5 numbers: ") ;

        length = input.nextInt() ; 

        Int[] numbers = new Int[length]


    }
} 

我班上有人说要使用数组和for循环,但我不知道如何使用,请帮忙

3 个答案:

答案 0 :(得分:0)

您可以使用array和for循环,如下面的代码所示。我使用int []数组存储要由用户输入的5个数字,并使用for循环填充该数字。

public static void main(String[] args) throws IOException, JSONException, ParseException {

        Scanner input = new Scanner(System.in) ;
        System.out.println("Enter 5 numbers: ") ;
        int[] array = new int[5];
        for(int i=0;i<array.length;i++) {
            array[i] = input.nextInt();
        }
        for(int i=0;i<array.length;i++) {
            System.out.println(array[i]);
        }
}

现在您可以使用for循环并覆盖问题中给出的所有情况。

例如The sum and average of all five numbers的计算如下:

//sum of all 5 numbers

int sum=0;
for(int i=0;i<array.length;i++) {
    sum += array[i];
}
System.out.println(sum); // Prints the sum of 5 numbers
int average = sum/array.length;
System.out.println(average); // Prints the average of 5 numbers

编辑sum of positive numbers and negative numbers only的代码

int posSum=0;
int negSum=0;
for(int i=0;i<array.length;i++) {
    if(array[i]>0){
        posSum += array[i];
    }else if(array[i]<0){
        negSum += array[i];
    }
}
System.out.println("Positive number only sum is "+posSum);
System.out.println("Negative number only sum is "+negSum);

答案 1 :(得分:0)

免责声明,我是C#专家,所以我的语法可能并不完全正确。


创建一个循环以将数字接受到数组中。

Int [] numbers = new Int [5]{};

for (Int i = 0; i < numbers.Length; i++)
{
    System.out.println("Enter a number.");
    numbers[i] = Scanner(System.in);
}

然后在数组上使用数学运算,并结合使用if语句来确定<或>值。

for (Int i = 0; i < numbers.Length; i++)
{
   if ( numbers[i] < 0)
      {
         // do this math
      }
else if (numebers[I] > 0)
   {
     // do this math.
   }
}

等等。

答案 2 :(得分:0)

这显然是家庭作业,因此我将帮助您读取这些数字的Java代码,然后为所需的计算提供一些伪代码。

  public static void main(String[] args)
  {
    int length = 5;
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter 5 numbers: ") ;
    int[] numbers = new int[length];
    for(int i=0; i<length; i++)
    {
      numbers[i] = input.nextInt();
    }
    // calculations go here
  }

计算结果如下:

posSum = posCount = negSum = negCount = 0
for n in numbers
  if n > 0
    posSum = posSum + n
    posCount = posCount + 1
  else
    negSum = negSum + n
    negCount = negCount + 1

您现在具有所需的正和负数。总和显然是这些总和。给定posSumposCount,您可以计算平均正数(检查posCount为0的情况)。平均负数相同。

最后一个问题-您是否需要跟踪posCount negCount,还是在循环完成后就可以相互计算? >