麻烦老师检查一下代码,和题目一样嘛?
来源: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
祝学习愉快!
相似问题