dfsljkjafdsk; 2022-04-29 09:28 采纳率: 100%
浏览 110
已结题

java OJ,运行出错,求解答

img

img


我的错误代码
import java.util.Scanner;
class queue {
int len;
int outnumber;
int innumber;
int staynumber=len-outnumber;
int Queue[]=new int[len];
int Innumber[]=new int[innumber];
int Outnumber[]=new int[outnumber];
public void queuelength() {
Scanner sc=new Scanner(System.in);
int len=sc.nextInt();
}
public void inqueue(){
for(int i=0;i<len;i++){
Scanner sc=new Scanner(System.in);
Queue[i]=sc.nextInt();
}
}
public void setOutnumber(){
System.out.print("out ");
Scanner sc=new Scanner(System.in);
outnumber=sc.nextInt();
}
public void setInnumber(){
System.out.print("in ");
Scanner sc=new Scanner(System.in);
for(int i=0;i<innumber;i++){
Innumber[i]= sc.nextInt();
}
}
public void changequeue(){
if(innumber>outnumber){len+=innumber=outnumber;}
for(int i=0;i<outnumber;i++)
Queue[i]=Queue[i+outnumber];
for(int i=staynumber;i<len;i++){
Queue[i]=Innumber[i-staynumber];
}
for(int i=0;i<outnumber;i++){
Outnumber[i]=Queue[i];
}
}
public void printqueue(){
System.out.print("len = "+len+", data =");
for(int i=0;i<len;i++){
System.out.print(" "+Queue[i]);
}
System.out.print("\n");
System.out.print("len = "+outnumber+", data =");
for(int i=0;i<=outnumber;i++){
System.out.print(" "+Outnumber[i]);
}
}
}
public class queuetest {
public static void main(String[] args) {
queue queue1 = new queue();
queue1.queuelength();
queue1.inqueue();
queue1.setOutnumber();
queue1.setInnumber();
queue1.changequeue();;
queue1.printqueue();;
}
}

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-04-29 09:38
    关注
    import java.util.Scanner;
    class Queue {
        private int[] list;
        public Queue(int len,String[] list){
            this.list = new int[len];
            for (int i=0;i<len;i++){
                this.list[i]=Integer.parseInt(list[i]);
            }
        }
    
        public void inQueue(int i){
            int [] temp=new int[list.length+1];
            for(int j=0;j<list.length;j++){
                temp[j]=list[j];
            }
            temp[temp.length-1]=i;
            list=new int[list.length+1];
            list=temp;
        }
    
        public int[] outQueue(int len,int [] outs){
            int outLen=this.list.length<len?this.list.length:len;
            int[] out = new int[outLen+outs.length];
            int i=0;
            for(;i<outs.length;i++){
                out[i]=outs[i];
            }
            for(;i<out.length;i++){
                out[i] = this.list[i];
            }
            int []temp=new int[list.length-outLen];
            for(int j=0;j<temp.length;j++){
                temp[j]=this.list[temp.length+j-1];
            }
            list=new int[list.length-outLen];
            list=temp;
            return out;
        }
    
        public int getLen(){
            return this.list.length;
        }
    
        public int [] getList(){
            return list;
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            String line = scan.nextLine();
            int len = Integer.parseInt(line);
            Queue q = new Queue(len, scan.nextLine().split(" "));
            String line1 = scan.nextLine();
            String line2 = scan.nextLine();
            int outNum = 0;
            int[] out=new int[outNum];
            if(line1.startsWith("in")){
                String[] ss = line1.split(" ");
                for(int i=1;i<ss.length;i++){
                    q.inQueue(Integer.parseInt(ss[i]));
                }
            }else if(line1.startsWith("out")){
                outNum += Integer.parseInt(line1.split(" ")[1]);
                out=q.outQueue(outNum,out);
            }
            if(line2.startsWith("in")){
                String[] ss = line2.split(" ");
                for(int i=1;i<ss.length;i++){
                    q.inQueue(Integer.parseInt(ss[i]));
                }
            }else if(line2.startsWith("out")){
                outNum += Integer.parseInt(line2.split(" ")[1]);
                out=q.outQueue(outNum,out);
            }
            System.out.print("len = "+ q.getLen());
            if(q.getLen()>0){
                System.out.print(", data =");
                for(int i :q.getList()){
                    System.out.print(" "+i);
                }
            }
            System.out.println();
            System.out.print("len = "+ out.length);
            if (out.length>0){
                System.out.print(", data =");
                for(int i=0;i<out.length;i++){
                    System.out.print(" "+out[i]);
                }
            }
            scan.close();
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • 有问必答小助手 2022-04-29 12:07
    关注
    您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
    PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月7日
  • 已采纳回答 4月29日
  • 创建了问题 4月29日

悬赏问题

  • ¥20 关于TRPD(波形特征)局部放电特征提取
  • ¥15 C语言快速排序函数纠错
  • ¥15 C#的一个应用程序书写
  • ¥65 页面调接口时加载卡住不响应
  • ¥35 用C语言解决编程问题
  • ¥15 unity硬件连接与使用
  • ¥15 鱼缸加热棒的数据分析或者实际案例也行
  • ¥15 postgresql11安装完成后,pgadmin无法启动
  • ¥15 (标签-无人机|关键词-Matlab代码)
  • ¥15 执行shell脚本提示参数太多