为甚么多出了个null?

package helloWorld;


import java.util.Scanner;

public class test_7{

public static void main(String[] args){

Scanner in=new Scanner(System.in);

System.out.println("请输入班级总人数:");

int num=in.nextInt();

System.out.println("请输入课程数目:");

int num_1=in.nextInt();

String[] name=new String[num];//名字

String[] course=new String[num_1];//分数

int[] sum=new int[num];

int[] avg=new int[num];

for(int i=0;i<course.length;i++){

System.out.println("请输入第"+(i+1)+"门课是什么:");

course[i]=in.next();

}

int[][] arr=new int[num][num_1];//课程分数的2维数组 

String[] str=new String[num];//把名字课程分数总分平均分连为一个整体的数组

String[] str11=new String[num];

int s=0;

for(int i=0;i<num;i++){

System.out.println("请输入第"+(i+1)+"个学生的姓名:");

name[i]=in.next();

for(int j=0;j<num_1;j++){

System.out.println("请输入"+name[i]+course[j]+"的成绩:");

arr[i][j]=in.nextInt();

s+=arr[i][j];

str11[i]+=arr[i][j]+"\t";

}

sum[i]=s;

avg[i]=sum[i]/num_1;

str[i]=name[i]+"\t"+str11[i]+sum[i]+"\t"+avg[i];

}

System.out.print("姓名"+"\t");

for(int i=0;i<num_1;i++){

System.out.print(course[i]+"\t");

}

System.out.print("总分"+"\t"+"平均分"+"\t"+"排行榜"+"\n");

for(int i=0;i<sum.length-1;i++){

for(int j=0;j<sum.length-1;j++){

if(sum[j]<sum[j+1]){

int t1=sum[j];  String t2=str[j];

sum[j]=sum[j+1]; str[j]=str[j+1];

sum[j+1]=t1;      str[j+1]=t2;

}

}


}

for(int i=0;i<sum.length;i++){

System.out.println(str[i]+"\t"+"第"+(i+1)+"名");

}

}


}

运行结果:

姓名 语文 数学 总分 平均分 排行榜

李四 null78 89 303 151 第1名

张三 null45 56 136 68 第2名

英语 null12 23 35 17 第3名


晴天小文友
浏览 1284回答 1
1回答

柠檬酸钠

你这代码连缩进都没有你自己能看懂吗,慕课网的代码高亮功能被你吃了? 你在前面输入时存储到了i+1个索引中,第一个结果存储的下标为1,你输出又输出的是i,第一个下标为0,你又没存0,不是null难不成是undefined?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java