Java 需要从一组用户';s级
在我的java类中,我们开始编写方法,而不是将所有代码放在主方法中。习题集中的一个问题是“编写一个方法,询问用户所修课程的数量n。然后该方法将询问在这些课程中获得的n个分数并返回其平均值”。以下是我目前掌握的情况:Java 需要从一组用户';s级,java,arrays,methods,average,Java,Arrays,Methods,Average,在我的java类中,我们开始编写方法,而不是将所有代码放在主方法中。习题集中的一个问题是“编写一个方法,询问用户所修课程的数量n。然后该方法将询问在这些课程中获得的n个分数并返回其平均值”。以下是我目前掌握的情况: import java.util.*; public class MethodPracticeSet2 {public static int average() { //Create new Scanner object Scanner
import java.util.*;
public class MethodPracticeSet2
{public static int average()
{
//Create new Scanner object
Scanner sc=new Scanner(System.in);
//Create divisor variable
int divisor=0;
//Ask user for their course
System.out.println("How many courses are you currently in?");
int course =sc.nextInt();
for (int i=0; i<course; i++)
{
System.out.println("What are your grades for those courses?");
int grades[]= new int[i];
grades[i]=sc.nextInt();
divisor= divisor+i;
}
System.out.println("Your average for these courses is "+divisor/course);
return average();
}
public static void main(String[] args)
{
int output=average();
System.out.println(output);
}
}
任何帮助都会很好 首先,需要在循环之前声明数组。目前,您正在循环的每次迭代中创建一个新数组,这显然不是您想要做的;这也是您获得
ArrayIndexOutOfBoundsException
的原因,原因是当您使用i
being0
实例化数组时,您试图将数字存储到空数组中,因此出现异常
以下是声明数组的方式:
int grades[] = new int[course];
for (int i = 0; i < grades.length; i++)
{
System.out.println("What are your grades for those courses?");
grades[i] = sc.nextInt();
divisor += 1;
}
试试这个:
public class MethodPracticeSet2 {
public static int average() {
// Create new Scanner object
Scanner sc = new Scanner(System.in);
// Create divisor variable
int divisor = 0;
// Ask user for their course
System.out.println("How many courses are you currently in?");
int course = sc.nextInt();
System.out.println("What are your grades for those courses?");
int sum = 0;
for (int i = 0; i < course; i++) {
sum += sc.nextInt();
}
System.out.println("Your average for these courses is " + (float) sum / course);
return average();
}
public static void main(String[] args) {
int output = average();
System.out.println(output);
}
公共类方法练习集2{
公共静态整数平均值(){
//创建新的扫描仪对象
扫描仪sc=新的扫描仪(System.in);
//创建除数变量
整数除数=0;
//向用户询问他们的课程
System.out.println(“你目前修了多少门课?”);
int course=sc.nextInt();
你对这些课程的分数是多少;
整数和=0;
对于(int i=0;i
}仅解决IndexOutOfBounds症状。对解决实际问题没有任何作用。顺便说一句:递归调用是OP的,这里没有介绍。请尝试使用正确的缩进。
int totalGrades = 0;
for(int grade : grades){
totalGrades += grade;
}
System.out.println("Your average for these courses is "+totalGrades / divisor);
return totalGrades / divisor;
public class MethodPracticeSet2 {
public static int average() {
// Create new Scanner object
Scanner sc = new Scanner(System.in);
// Create divisor variable
int divisor = 0;
// Ask user for their course
System.out.println("How many courses are you currently in?");
int course = sc.nextInt();
System.out.println("What are your grades for those courses?");
int sum = 0;
for (int i = 0; i < course; i++) {
sum += sc.nextInt();
}
System.out.println("Your average for these courses is " + (float) sum / course);
return average();
}
public static void main(String[] args) {
int output = average();
System.out.println(output);
}