用于跟踪字母成绩的数组

时间:2016-10-10 19:17:17

标签: arrays

需要帮助编写程序。我无法弄清楚如何添加到某个数组。以下是我必须编写的程序。任何帮助,将不胜感激。

编写将使用一维数组的应用程序。询问用户一系列数字等级(等级为-1将结束输入)。创建一维数组以跟踪成绩范围。例如:

指数0代表90-100的等级 指数1代表80-89的等级 指数2表示70-79的等级 指数3表示在60-69范围内的等级 指数4表示59或以下范围内的等级

显示A,B,C,D和F的数量;还显示平均,最高和最低等级。 以下是您的程序应该是什么样的:

输入数字等级(0-100)或-1以退出:90

输入数字等级(0-100)或-1以退出:82

输入数字等级(0-100)或-1以退出:96

输入数字等级(0-100)或-1以退出:-1

A等级数:2

B等级数:1

C等级数:0

D等级数:0

F等级数:0

平均值是:89.33

最高等级是:96

最低成绩是:82

1 个答案:

答案 0 :(得分:0)

我知道有更好的方法可以做到这一点,例如将问题分解为单独的方法,从而使代码更容易调试/维护,但这是我不使用任何方法的方式。

public static void main(String[] args) {
    final int SIZE = 100;
    int[] array = new int[SIZE];
    int count = 0;
    int ans;
    int[] gradeRange = {0, 0, 0, 0, 0};
    double total = 0;
    double average = 0;
    int highest = array[0];




    Scanner keyboard = new Scanner(System.in);
    System.out.println("Enter a numeric grade (0-100) or -1 to quit:");
    ans = keyboard.nextInt();

    while (ans != -1 && count < array.length) {
        array[count] = ans;
        count++;  //counter used to keep track of the array length

        if (ans >= 90) {
            gradeRange[0]++;

        }
        else if (ans >= 80) {
            gradeRange[1]++;

        }
        else if (ans >= 70) {
            gradeRange[2]++;

        }
        else if (ans >= 60) {
            gradeRange[3]++;

        }
        else if (ans < 60) {
            gradeRange[4]++;

        }

        System.out.println("Enter a numeric grade (0-100) or -1 to quit:");
        ans = keyboard.nextInt();
    }

    int[] secarray = new int[count];   
    for (int index = 0; index < count; index++) {
        secarray[index] = array[index];
    }
    int min = secarray[0];



    for (int index = 0; index < count; index++) {
        total += array[index];
        average = total / count;
    }


    for (int index = 0; index < count; index++) {
        if (array[index] > highest)
            highest = array[index];

    }
    for (int index = 1; index < secarray.length; index++) {

        if (secarray[index] < min)
            min = secarray[index];
    }







    System.out.println("Number of A grades: " + gradeRange[0]);
    System.out.println("Number of B grades: " + gradeRange[1]);
    System.out.println("Number of C grades: " + gradeRange[2]);
    System.out.println("Number of D grades: " + gradeRange[3]);
    System.out.println("Number of F grades: " + gradeRange[4]);

    System.out.printf("Average is: %.1f\n ", average);
    System.out.println("Lowest grade is: " + min);
    System.out.println("Highest grade is: " + highest); 


}//end main