使用用户输入填充数组

时间:2016-03-21 16:20:05

标签: java

我道歉,我知道这看起来很简单,但我对编码有点新意。该程序的目标是从索引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);


}
}

4 个答案:

答案 0 :(得分:1)

你的逻辑有点偏。 numberOfGrades是......好的等级数。当您执行此操作时:grades[numberOfGrades] = input.nextInt();然后您将用户的输入放在您不想要的位置grades的{​​{1}}数组中。

你想要的是:

numberOfGrades

这样,访问位置do { System.out.println("Please enter grade number " + (counter+1) + ": "); grades[counter] = input.nextInt(); counter++; } while (counter < numberOfGrades); 中的数组,并将用户的输入放在正确的位置。

另外,要计算成绩的平均值,就像你在课程结束时尝试做的那样,你应该这样做:

counter

然后你的平均值将是:

double sum = 0;
for (int grade : grades) 
    sum += grade;

你也可以将这个求和逻辑放在average = 1.0d * sum / grades.length; 循环中,避免我引入的额外循环。

答案 1 :(得分:0)

这条指令

grades[numberOfGrades] = input.nextInt();

必须替换为

grades[counter] = input.nextInt();

答案 2 :(得分:0)

试试这个......

你做错了的事情就是你在同一个数组中插入值的do while循环grades[numberOfGrades] = input.nextInt();应该被grades[counter] = input.nextInt();替换

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[counter] = input.nextInt();
        counter++;
    } while (counter < numberOfGrades);

    System.out.println("The number of grades you wanted averaged was: " + grades.length);


}
}

答案 3 :(得分:0)

您可以尝试这样

  public class ArrayTest {

 public static void main(String[] args) {

Scanner input=new Scanner(System.in);

System.out.println("enter number of elements");

int n=input.nextInt();

int arr[]=new int[n];

System.out.println("enter elements");

for(int i=0;i<n;i++){//for reading array
    arr[i]=input.nextInt();

}

for(int i: arr){ //for printing array

    System.out.println(i);

}

}

相关问题