如何修复NetBeans中无法为用户输入的数组计算平均值和计数高于平均值的元素的Java程序?

5t7ly7z5  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(163)

我试图构建一个数组,它将接受总位数--在本例中是10位--并给予平均值和高于平均值的元素数。
构建运行,但是在我输入数字之后,它失败了,没有计算任何东西。

import java.util.Scanner;

public class Week7Practice 
{   
   
    public static void main(String[] args) 
    {
    Scanner input = new Scanner(System.in);
    
    System.out.println("Enter some numbers: ");
    
    int n = input.nextInt();
    double[] numbers = new double[n];
    double sum = 0;
    int i;
            
    for (i = 0; i < n; i++)
            numbers[i] = input.nextDouble();
        sum += numbers[i];
        
    double average = sum/n;
    
    int count = 0;
    
    for (i = 0; i < n; i++);
    
        if (numbers[i] > average)
            count++;
        
    System.out.println("Average is " + average);
    System.out.println("Number of elements above the average is " + count);       
        
    }

}

我正在使用NetBeans并尝试导入Array实用程序,但系统告诉我该实用程序是未使用的导入,因此我将其删除。我想也许我需要一个 Math 语句,但我完全不知道该把它放在哪里。

ddarikpa

ddarikpa1#

您需要对代码进行一些更正。
首先,与Python不同,缩进并不决定结构。
它只是用来创建可读性。
第一个for循环需要方括号。
如果你不想使用括号,它必须是一个statement
你能做到的;简化sum赋值,使其也包含numbers[i]赋值。

for (i = 0; i < n; i++) 
    sum += (numbers[i] = input.nextDouble());

第二个for循环以;结束。
这只在您试图计算i的某种索引时有用。
这是一个单独的语句,所以括号是可选的。

for (i = 0; i < n; i++)
    if (numbers[i] > average)
        count++;

输入示例

9 1 2 3 4 5 6 7 8 9

输出量

Average is 5.0
Number of elements above the average is 4

相关问题