有阵列代码问题,基于java的编码

时间:2014-02-19 23:40:42

标签: java arrays

请记住,我只是java的初学者。问题是从用户接受十个数字,将它们存储在一个数组中,并找到十个数字的最高,最低和平均值。然后扩展上述程序以按值的递增顺序重新排列所有数字,即对数字进行排序。写下您使用的排序逻辑/算法的解释。

我使用Netbeans按照我的讲师的建议进行java编码。

代码无法编译到需要执行的操作。

以下是代码:

import java.util.Scanner;

public class lowhighavg 
{
    private static int [] array;
    private static int i;

    public static void main(String [] args)
    {
        int numbers[] = new int[10],highest=0, lowest=0;
        double avg;
        avg = 00;
        Scanner sc = new scanner(System.in);

        for (int i=0, i<10;i++)
        {
            System.out.println("Enter a digit");
            number[i]= sc.nextInt();
            avg = avg+number[i];
        }

        highest = number[0];
        lowest = number[0];

        for (int i=0; i< numbers.length; i++);
        {
            if (numbers [i] > highest)
                highest= numbers[i];
        }

        if (number [i] < lowest)
        {
            lowest = numbers[i];
        }

        System.out.println("the highest number:" + highest);
        System.out.println("the lowest number:" + lowest);

        avg =avg/10;

        System.out.println("the average number:" + avg);
    }
}

3 个答案:

答案 0 :(得分:0)

  • 第一个for循环的语法错误。各个细分市场 应该是分号分开的。

    for (int i=0, i<10;i++) // Change the comma here
    
  • Java是一种区分大小写的语言。 Scanner应该是大写的 这个表达的右边。

    Scanner sc = new scanner(System.in);
    
  • 您还声明了一个名为numbers的int数组,但有几个 代码中您指的是未声明的实例 变量number

在第二个for循环结束时你也有一个分号。这就像说“执行任何x次”并且它还具有以下if-statement将仅在该循环结束后执行的结果,导致您的最高数字保持为数组的第一个元素。找到最小数字的另一个if语句也应该在该循环内。

我也不明白为什么你有两个静态变量,因为你显然没有在任何地方使用它们。您将i声明为静态的事实可能会隐藏上述错误之一。

答案 1 :(得分:0)

这部分显然是错误的:

for (int i=0; i< numbers.length; i++);
    {
        if (numbers [i] > highest)
            highest= numbers[i];
    }

    if (number [i] < lowest)
    {
        lowest = numbers[i];
    }

它应该是这样的:

for (int i=0; i< numbers.length; i++)
{
    if (numbers [i] > highest)
        highest= numbers[i];


    if (numbers [i] < lowest)
    {
        lowest = numbers[i];
    }
}

您可以使用Arrays.sort(numbers)对数字进行排序。

答案 2 :(得分:0)

您之前发布的代码示例中存在相当多的错误,但其他人已经指出了这一点。

要查找最高和最低,只需使用Arrays实用程序类并对数组进行排序,并在排序后简单地选择数组的第一个和最后一个值(我修复了语法错误):

import java.util.Arrays;
import java.util.Scanner;

public class lowhighavg 
{
    private static int [] array;
    private static int i;

    public static void main(String [] args)
    {
        int numbers[] = new int[10];
        double avg;
        avg = 00;
        Scanner sc = new Scanner(System.in);

        for (int i = 0; i < 10; i++)
        {
            System.out.println("Enter a digit");
            numbers[i]= sc.nextInt();
            avg = avg+numbers[i];
        }

        Arrays.sort(numbers);

        System.out.println("the highest number:" + numbers[numbers.length-1]);
        System.out.println("the lowest number:" + numbers[0]);

        avg =avg/10;

        System.out.println("the average number:" + avg);
    }
}