麻烦老师检查一下代码,和题目一样嘛?
来源:1-8 编程练习
热爱编程学习
2022-02-19 13:28:14
int intarray[][]=new int[3][2];
Scanner sc=new Scanner(System.in);
for(int i=0;i<intarray.length;i++) {
for(int y=0;y<intarray[i].length;y++) {
if(y==0) {
System.out.println("请输入第"+(i+1)+"个学生的语文成绩");
intarray[i][y]=sc.nextInt();
}
if(y==1) {
System.out.println("请输入第"+(i+1)+"个学生的数学成绩");
intarray[i][y]=sc.nextInt();
}
}
}
int sum=0;
int avg=0;
int a=0;
int b=0;
for(int i=0;i<intarray.length;i++) {
for(int y=0;y<intarray[i].length;y++) {
if(y==0) {
sum=sum+intarray[i][y];
a=a+1;
}else {
avg=avg+intarray[i][y];
b=b+1;
}
}
}
System.out.println("语文的总成绩为:"+sum);
System.out.println("语文的总成绩为:"+sum/a);
System.out.println("数学的总成绩为:"+avg);
System.out.println("数学的总成绩为:"+avg/b);1回答
同学你好,已完成练习,不过三个优化的建议:
1、这里可以只定义一层循环,并且从键盘接收数据,为每位学生的成绩赋值的同时求和。
2、在计算平均分时,通过数组长度进行计算即可。修改后代码如下所示:

import java.util.Scanner;
public class ScoreDemo{
public static void main(String[] args) {
int intArray[][]=new int[3][2];
Scanner sc=new Scanner(System.in);
int sum=0;
int avg=0;
for(int i=0;i<intArray.length;i++) {
System.out.println("请输入第"+(i+1)+"个学生的语文成绩");
intArray[i][0]=sc.nextInt();
sum=sum+intArray[i][0];
System.out.println("请输入第"+(i+1)+"个学生的数学成绩");
intArray[i][1]=sc.nextInt();
avg=avg+intArray[i][1];
}
System.out.println("语文的总成绩为:"+sum);
System.out.println("语文的总成绩为:"+sum/intArray.length);
System.out.println("数学的总成绩为:"+avg);
System.out.println("数学的总成绩为:"+avg/intArray.length);
}
}3、 关于变量命名问题,如果由一个单词组成,则该单词小写。如果由多个单词组成,第一个单词小写,从第二个单词开始每个单词的首字母大写。例如:intarray应该改为:intArray祝学习愉快!
相似问题