m0_57712500 2021-11-09 13:07 采纳率: 83.3%
浏览 871
已结题

java问题,不会改Index 0 out of bounds for length 0

img


import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class GradeStatistic 
{
    public static void main(String[] args) 
    {
          ArrayList<String> arrayList = new ArrayList<String>();
          ArrayList<Integer> arrayList1 = new ArrayList<Integer>();
          Scanner input = new Scanner(System.in);
          String x = input.next();
          int score;
          while(x.equals("end"))
          {
              Scanner in = new Scanner(System.in);
              System.out.println("请输入考生姓名  ");
              x=in.next();
              System.out.println("请输入"+x+"成绩  ");
              score=in.nextInt();
              arrayList1.add(score);
              arrayList.add(x);
          }
          System.out.println("考生姓名  "+":"+"成绩  ");
          int sum=0;
          for(int i=0;i<arrayList.size();i++)
          {
              System.out.println(arrayList.get(i)+":"+arrayList.get(i));
              sum+=arrayList1.get(i);
          }
          Collections.sort(arrayList1);
          System.out.println("最低分:"+arrayList1.get(0));
          System.out.println("最低分:"+arrayList1.get(arrayList1.size()-1));
          double ave=sum/(arrayList1.size()-1);
          System.out.println("平均分:"+ave);
    }
    
}
 class Mark
 {
     int score;
     String name;
     public Mark(String name,int score)
     {
            
        
            this.name=name;
            this.score=score;
            
        }
     public String toString()
     {

            return "姓名:"+this.name+"    "+this.score;
        }
     
 }
  



这是我写的代码,求帮忙改进,谢谢

  • 写回答

3条回答 默认 最新

  • 关注

    我也写来练练
    代码:

    package com;
    
    
    import java.util.ArrayList;
    import java.util.Scanner;
    public class GradeStatistic 
    {
       public static void main(String[] args) {
             ArrayList<Mark> arrayList = new ArrayList<Mark>();
             Scanner in = new Scanner(System.in);
             boolean b=true;//是否继续输入成绩
             while(b){
                 System.out.println("请输入考生姓名  ");
                 String x=in.next();
                 if(x.equals("end")){
                     b=false;
                     break;//跳出本次循环
                 }
                 System.out.println("请输入"+x+"成绩  ");
                 int score=in.nextInt();
                 Mark m=new Mark(x,score);
                 arrayList.add(m);
             }
             in.close();//输入结束,释放对象
             int sum=0;//总成绩
             int max=0;//最高成绩
             int min=0;//最低成绩
             System.out.println("==================开始公布成绩==================");
             for(int i=0;i<arrayList.size();i++){
                Mark m=arrayList.get(i);
                if(i==0){//默认最低值和最高值都是第一个成绩
                    max=m.score;
                    min=m.score;
                }else{
                    if(m.score>max){
                        max=m.score;
                    }
                    if(m.score<min){
                        min=m.score;
                    }
                }
                sum+=m.score;
                System.out.println(m.toString());
             }
             System.out.println("学生总数:"+arrayList.size());
             System.out.println("最低分:"+min);
             System.out.println("最高分:"+max);
             double ave=sum/(arrayList.size());
             System.out.println("平均分:"+ave);
             System.out.println("==================公布成绩结束==================");
       }
    }
    class Mark{
        int score;
        String name;
        public Mark(String name,int score){
           this.name=name;
           this.score=score;
        }
        public String toString(){
           return "姓名:"+this.name+"-成绩:"+this.score;
        }
    }
    

    运行结果:

    img

    如果是你想要的,请采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 创建了问题 11月9日

悬赏问题

  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败