我很抱歉,我知道这看起来很简单,但我对编码有点陌生。该程序的目标是从索引 0 开始获取用户的输入,然后将输入保存到数组中。我可能即将解决这个问题,但我需要一些帮助。
这是代码:
public class ArrayTest
{
public static void main(String [] args)
{
Scanner input = new Scanner(System.in);
int numberOfGrades;
int counter = 0;
System.out.println("This program averages the grades you input.");
System.out.println("Please enter the number of grades you'd like averaged: ");
numberOfGrades = input.nextInt();
int[] grades = new int[numberOfGrades];
do
{
System.out.println("Please enter grade number " + (counter+1) + ": ");
grades[numberOfGrades] = input.nextInt();
counter++;
} while (counter < numberOfGrades);
System.out.println("The number of grades you wanted averaged was: " + grades.length);
}
}
最佳答案
你的逻辑有点不对劲。 numberOfGrades
是.. 嗯.. 等级数。当您执行此操作时:grades[numberOfGrades] = input.nextInt();
然后您将用户的输入放入 grades
数组中的 numberOfGrades
位置>,这是你不想要的。
你想要的是:
do {
System.out.println("Please enter grade number " + (counter+1) + ": ");
grades[counter] = input.nextInt();
counter++;
} while (counter < numberOfGrades);
这样,就可以访问位置 counter
中的数组,并将用户的输入放置在其中的正确位置。
此外,要计算平均成绩,就像您在类(class)结束时尝试做的那样,您应该这样做:
double sum = 0;
for (int grade : grades)
sum += grade;
然后你的平均值将是:
average = 1.0d * sum / grades.length;
您也可以将此求和逻辑放入 do-while
循环中,并避免我引入的额外循环。
关于java - 用用户输入填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36136388/