总是说找不到这个Scanner

来源:1-8 编程练习

DULULU

2020-08-15 10:59:20

 int[][] inta=new int[3][2];
       int n=1;
       int a=0,b=0;
       //从键盘输入学生成绩,要求输入顺序与效果图一致
       for(int i=0;i<3;i++){
            Scanner sc1=new Scanner(System.in);
            System.out.println("请输入第"+n+"个学生的语文成绩");
            inta[a][b]=sc1.nextInt();
            a++;
            Scanner sc2=new Scanner(System.in);
            System.out.println("请输入第"+n+"个学生的数学成绩");
            inta[a][b]=sc2.nextInt();
            b++;
       }
        int sum1=0,sum2=0;
       //求语文的总成绩和平均分
        for(int i=0;i<=inta[0].length-1;i++){
            sum1=sum1+inta[0][i];
        }
        System.out.println("语文成绩的总和"+sum1);
       //求数学的总成绩和平均分
        for(int i=0;i<=inta[1].length-1;i++){
            sum2=sum2+inta[1][i];
        }
        System.out.println("数学成绩的总和"+sum2);


写回答

1回答

好帮手慕阿园

2020-08-15

同学你好

1,老师运行同学的代码并没有报找不到Scanner找不到的错,而是索引越界异常的错

http://img.mukewang.com/climg/5f37769409bb142107640565.jpg

同学检查下是否导入了Scanner的包呢

http://img.mukewang.com/climg/5f3776a2094d41ef02780058.jpg

2,对于索引越界异常是因为同学定义了a和b,每次循环完a++和b++,循环了3次,b最后成为了3,所以导致索引越界异常

3,同学定义了n=1,输出语句也使用的n,导致每次输出都是第1个成绩

4,求和的时候可以直接在将成绩存入集合的时候进行求和,不用再重新写两个循环进行求和

整体修改后代码如下

    public static void main(String[] args) {  //2
      int[][] inta=new int[3][2];
//    int n=1;
//    int a=0,b=0;
      int sum1=0,sum2=0;
      //从键盘输入学生成绩,要求输入顺序与效果图一致
      for(int i=0;i<inta.length;i++){
         Scanner sc1=new Scanner(System.in);
         System.out.println("请输入第"+(i+1)+"个学生的语文成绩");
         inta[i][0]=sc1.nextInt();
         sum1=sum1+inta[i][0];

         Scanner sc2=new Scanner(System.in);
         System.out.println("请输入第"+(i+1)+"个学生的数学成绩");
         inta[i][1]=sc2.nextInt();
         sum2=sum2+inta[i][1];
      }

      //求语文的总成绩和平均分
//    for(int i=0;i<=inta[0].length-1;i++){
//       sum1=sum1+inta[0][i];
//    }
      System.out.println("语文成绩的总和"+sum1);
      int average1=sum1/inta.length;
      System.out.println("语文的平均成绩为:"+average1);
      //求数学的总成绩和平均分
//    for(int i=0;i<=inta[1].length-1;i++){
//       sum2=sum2+inta[1][i];
//    }
      System.out.println("数学成绩的总和"+sum2);
      int average2=sum2/inta.length;
      System.out.println("数学的平均成绩为:"+average2);

   }

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 16556 问题

查看课程

相似问题