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

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();
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 WPF动态创建页面内容
  • ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
  • ¥15 SQL数据库操作问题
  • ¥100 关于lm339比较电路出现的问题
  • ¥15 Matlab安装yalmip和cplex功能安装失败
  • ¥15 加装宝马安卓中控改变开机画面
  • ¥15 STK安装问题问问大家,这种情况应该怎么办
  • ¥15 关于罗技鼠标宏lua文件的问题
  • ¥15 halcon ocr mlp 识别问题
  • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线