0

我正在尝试组合一个 java 程序来执行以下操作:

  1. 提示并读取多个整数以读取
  2. 创建一个可以容纳这么多整数的数组
  3. 使用循环读取整数值以填充数组
  4. 计算数组中的平均值(作为整数)

这是我到目前为止所拥有的(尽管我很确定这是错误的):

public static void Average (Scanner keyboard)
{
    System.out.println("Please insert number of integers to read in: ");
    keyboard = new Scanner(System.in);
    int f = keyboard.nextInt();
    int value[]= new int[f];
    //I don't know if I should use a while loop here or what the arguments should be
}

为了建立循环,条件应该是什么?

4

5 回答 5

3

让我们看看您需要什么来计算平均值以及您现在拥有什么。

你需要什么

  • 值的总数
  • 价值
  • 保存值总和的地方

你有什么

  • 值的总数
  • 获取新值的来源

现在,根据您的代码,您似乎没有添加所有数字的地方。这很容易解决;你知道如何声明一个新变量。

你也没有这些价值观,但你确实有可以从中获取它们的地方。由于您还知道需要汇总多少数字,因此可以使用循环从源中获取那么多数字。

总而言之,你会希望你的循环运行f时间。在该循环中,您需要获取新的新号码并将其添加到其余号码中。最后,您应该能够从中得出平均值。

于 2013-05-18T02:49:50.497 回答
0

您可以放置​​一个while循环或for循环来输入数字。随着输入,继续取sum数字。因为你有值的总数: Average= (sum of numbers)/ total numbers.

我将编写伪代码,以便它迫使您进行更多搜索:

//Pseudo code starts after your array declaration

for loop from 0 to f
  store it in values Array
  save sum of numbers: sum= sum+values[i]
loop ends
calculate Average
于 2013-05-18T06:58:55.943 回答
0
public static void Average (Scanner keyboard)
{
    System.out.println("Please insert number of integers to read in: ");
    keyboard = new Scanner(System.in);
    int f = keyboard.nextInt();
    int value[]= new int[f];

    double avg = 0;
    for (int i = 0; i < f; i++)
    { 
       value[i] = keyboard.nextInt();
       avg += value[i];   
    }

    avg /= f;
    System.out.println("Average is " + avg);
}

我没有看到有数组的意义value。或者你想要一些其他的平均值?

于 2013-05-18T08:30:00.863 回答
0

更好的主意是提示用户一次输入所有值,用空格分隔。IE

2 4 1 1 6 4 2 1

然后,您可以调用split() 函数 f或 Strings 将其拆分为字符串数组,然后使用Integer.parseInt()函数将此字符串数组转换为整数数组。

一旦你有了整数数组,就可以通过一个简单的 for 循环将所有值相加并除以该数组的长度。

于 2013-05-18T02:43:37.703 回答
0

I wrote(with a friend) a code that calculates the average number:

package dingen;
import java.util.Scanner;


public class Gemiddelde {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner sc = new Scanner(System.in);

    float maxCount = 0;
    float avgCount = 0;

    System.out.println("How many numbers do you want");

    int n = sc.nextInt();

    for(int i = 0; i < n; i++) {
        System.out.println("Number: ");
        float number = sc.nextInt();
        maxCount = maxCount + number;

    }

    avgCount = maxCount / n;
    System.out.println("maxCount = " + maxCount);
    System.out.println("avgCount = " + avgCount);
}

}

the only thing you have to do is replace your class and package.

you wil get the message: How many numbers do you want?:

and then it wil ask you the amount of numbers you inserted.

example:

How many numbers do you want?:6

Number:6

Number:7

Number:8

Number:9

Number:93

Number:94

maxCount = 217.0

avgCount = 36.166668

I have hoped I helped you with your problem :)

于 2015-03-21T19:23:44.520 回答