为什么我写的代码在这个上面执行报错,在eclipse上就没有问题呀?
public class ScoreDemo{
public static void main(String[] args){
int[][] arr=new int[3][2];
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
if(j==0){
System.out.println("请输入第"+(i+1)+"个学生的语文成绩:");
Scanner sc=new Scanner(System.in);
arr[i][j]=sc.nextInt();
}
if(j==1){
System.out.println("请输入第"+(i+1)+"个学生的数学成绩:");
Scanner sc=new Scanner(System.in);
arr[i][j]=sc.nextInt();
}
}
}
int a=0;
int b=0;
int c=0;
int d=0;
int i=0;
int j=0;
for(int i=0;i<arr[i].length;i++){
for(int j=0;j<arr.length;j++){
if(j==0){
a=a+arr[j][i];
}
if(j==1){
c=c+arr[j][i];
}
}
}
System.out.println("语文的总成绩为:"+a);
b=a/arr.length;
System.out.println("语文的平均分为:"+b);
System.out.println("数学的总成绩为:"+c);
d=c/arr.length
System.out.println("数学的平均分为:"+d);
}
}
正在回答 回答被采纳积分+1
我觉得键盘输如直接写为:java.util.Scanner cs = new java.util.Scanner(System.in);这样会更加直接,还不容易错;还有一点就是这条语句不能重复引用“int temp=cs.nextInt();”
int[][] intArray =new int[3][2]; //从键盘输入学生成绩,要求输入顺序与效果图一致 // int intArray[i][1]=cs.nextInt(); for(int i=0;i<intArray.length;i++){ for(int j=0;j<intArray[i].length;j++){ if(j==0) { System.out.println("请输入第"+(i+1)+"个学生的语文成绩:"); }else { System.out.println("请输入第"+(i+1)+"个学生的数学成绩:"); } java.util.Scanner cs =new java.util.Scanner(System.in); int temp=cs.nextInt(); intArray[i][j]=temp; } } int sum1=0; int avg1=0; for(int i=0;i<intArray.length;i++) { sum1+=intArray[i][0]; avg1=sum1/(intArray[i].length+1); } System.out.println("语文的总成绩为:"+sum1); System.out.println("语文的平均分为:"+avg1); int sum2=0; int avg2=0; for(int i=0;i<intArray.length;i++) { sum2+=intArray[i][1]; avg2=sum2/(intArray[i].length+1); } System.out.println("数学的总成绩为:"+sum2); System.out.println("数学的平均分为:"+avg2);
第一点:
没有引入import java.util.Scanner;
第二点:
int i=0; int j=0; for(int i=0;i<arr[i].length;i++){ for(int j=0;j<arr.length;j++){ if(j==0){ a=a+arr[j][i]; } if(j==1){ c=c+arr[j][i]; } } }
在for循环前面,已经定义了i和j,for循环内部,又重新定义了i和j,导致重复定义变量。
第三点:
for(int i=0;i<arr[i].length;i++){ for(int j=0;j<arr.length;j++){ } }
第二次的嵌套for循环,完全不理解是什么意思,为什么外层for循环i<arr[i].length?
第二次的嵌套for循环格式,可以照搬第一次的。
for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[i].length;j++){ } }
第四点:
a=a+arr[j][i]; c=c+arr[i][j];
你已经设置i为外层循环,j为内层循环,数组应该是arr[i][j]。
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星