记录我的学习,自学java中,望大神指点一二
需求:可设置需要登记的学生人数,并以此输入学生的编号+语文成绩+数学成绩+英语成绩,最后输出所有学生单科成绩+平均成绩+总成绩
实现:
public class StudentsGrades {
public static void main(String[] args) {
System.out.println("请输入需要添加的学生人数:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int grade[][] = new int[n][4];
double Averagescore[][] = new double [n][1];
int total[][] = new int[n][1];
//输入
if(n==0) {
System.out.println("请至少输入一个学生的成绩!");
}
for(int i=0;i<grade.length;i++) {
System.out.println("请输入第"+(i+1)+"个学生的编号:");
Scanner st1 = new Scanner(System.in);
grade[i][0] = st1.nextInt();
System.out.println("请输入语文成绩:");
Scanner st2 = new Scanner(System.in);
grade[i][1] = st2.nextInt();
System.out.println("请输入数学成绩:");
Scanner st3 = new Scanner(System.in);
grade[i][2] = st3.nextInt();System.out.println("请输入英语成绩:");
Scanner st4 = new Scanner(System.in);
grade[i][3] = st4.nextInt();
total[i][0]=grade[i][1]+grade[i][2]+grade[i][3];//总成绩
int sum=total[i][0];
Averagescore[i][0]=sum/3.0;//平均成绩
st1.close();
st2.close();
st3.close();
st4.close();
}
//
if(n>0) {
System.out.println("学生成绩表如下:");
System.out.println("----------------------------------------------------------------------");
System.out.println("学生编号 语文成绩 数学成绩 英语成绩 平均成绩 总成绩");
for(int i=0;i<n;i++) {
for(int j=0;j<4;j++) {
System.out.print(grade[i][j] +"\t"+"\t");
}
System.out.print( String.format("%.2f", Averagescore[i][0]) +"\t"+"\t" +total[i][0]);
System.out. println();
}
}
sc.close();
}
}
实验结果:
遇到的难题:平均成绩的输出没有弄明白(请高手指点!!),为何用sum/3和sum/3.0的结果不一样,后者更精确。
自学java,轻点喷!!😢😢