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

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 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题