这是代码:
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);
}
}
答案 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);
}
}