目的是①,输入学生姓名,依次输入5门课成绩,输出平均分,并给出提示是否继续输入。②,如果输入字母y,则重复①的步骤,始终循环;如果输入字母n,则输出成绩录入结束,循环终止。
我是新手,被这个题目搞晕了,虚心求指教。题目要求是用(while,do-while,for循环,多重循环)。
下面是我的代码和eclipse的运行结果:
import java.util.Scanner;
public class Test{
public static void main(String[] args){
String name;
Scanner input=new Scanner(System.in);
System.out.print("输入学生姓名:");
name=input.next();
int[] result=new int[5];
int i=0;//设角标数为i。
Scanner fenshu=new Scanner(System.in);
String j;
do{
do{
System.out.print("请输入5门功课中第"+(i+1)+"门课的成绩:");
result[i]=fenshu.nextInt();
i++;
}while(i<result.length);
double average=(result[0]+result[1]+result[2]+result[3]+result[4])/result.length;
System.out.print(name+"的平均分是:"+average);
System.out.println("\n"+"继续输入吗(y/n)?");
j = input.next ();
}while(j.equals("y"));
System.out.println("成绩录入结束");
}
}
---------------------------------------------------------------------------------------------------------------------------------
输入学生姓名:Test
请输入5门功课中第1门课的成绩:90
请输入5门功课中第2门课的成绩:90
请输入5门功课中第3门课的成绩:90
请输入5门功课中第4门课的成绩:90
请输入5门功课中第5门课的成绩:88
Test的平均分是:89.0
继续输入吗(y/n)?
y
请输入5门功课中第6门课的成绩:90
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Test.main(Test.java:17)
------------------------------------------------------------------------------------------------------------------
不对哦。我的代码整体思路我都感觉是错的。
我输入y是继续了,但是不是重新输入名字+成绩(直接输入的成绩,而且是第6门,不是第1门),接着就报错了。
还有,这种数组的平均数我都不会,看上面计算的平均数都是错的。