java问题求助~!

来源:百度知道 编辑:UC知道 时间:2024/05/10 20:44:19
package paixu;
import java.util.*;
public class Paixu01{
public static void main(String[] args){
//public String $oo1(){
Scanner input=new Scanner(System.in);
System.out.println("请输入班级总人数:\t");
int ren =input.nextInt(); //输入班级总人数
System.out.println("请输入科目总数:\t");
int ke =input.nextInt(); //输入科目总数
String[] kemu=new String[ke]; //科目数组
int[] chengji =new int[ke]; //成绩数组
int[] chengji_avg=new int[ren]; //平均成绩数组
String[] name=new String[ren]; //声明学科数目数组
int[] sum1 = new int[ren]; //总成绩
double avg; //平均成绩
int sum=0; //数组内所有元素之和

for(int po=0;po<ke;po++){
System.out.println("请输入学科名称:\t");
kemu[po]=input.next();

}

for(int $pi=0;$pi<ren;$pi++){

System.out.println("请输入学员姓名:\t");
name[$pi]=input.next();
}

for(int pi=0;pi<ke;pi++){
for(int $pi=0;$pi<ren;$pi++){
System.o

for(int pi=0;pi<ke;pi++){
for(int $pi=0;$pi<ren;$pi++){
System.out.println("请输入"+name[$pi]+"\t"+kemu[pi]+"学科成绩:\t");
chengji[$pi]=input.nextInt();//数组越界异常
}
因为初始成绩数组开辟的空间小于你输入的空间大小了,所以出现异常。

解决方案把成绩数组初始变量
int[] chengji =new int[ke]; //成绩数组
改成:
int[] chengji =new int[ren]; //成绩数组

改完后你再运行看看是不是问题解决了,呵呵。
虽然这样其实还有问题,就是让人数小于科目数的时候也会抛异常,但是我想那样的概率很低吧,哪有一个班的人数还没有科目数多的,所以剩下的问题就得靠你自己解决了。

你求别人帮忙,还要别人自己运行啊,人不能懒到这个程度

大大?是中文吗