java OJ题,写了一个下午没结果,已经裂开,求解答

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();;
}
}

img

img

import java.util.ArrayList;
import java.util.Scanner;
class Queue {
    public ArrayList<Integer> list=new ArrayList<>();
    public ArrayList<Integer> outList=new ArrayList<>();
    public void inQueue(int i){
        this.list.add(i);
    }
    public ArrayList outQueue(int len){
        int outLen=this.list.size()<len?this.list.size():len;
        for(int j=0;j<outLen;j++){
            outList.add(list.get(j));
        }
        for(int j=outLen-1;j>=0;j--){
            list.remove(j);
        }
        return outList;
    }
}
public class Main {
    public static void main(String[] args) {
        Queue q=new Queue();
        Scanner scan = new Scanner(System.in);
        String line = scan.nextLine();
        int len = Integer.parseInt(line);
        String[] s = scan.nextLine().split(" ");
        for (String str:s) {
            q.inQueue(Integer.parseInt(str));
        }
        String line1 = scan.nextLine();
        String line2 = scan.nextLine();
        int outNum = 0;
        ArrayList out=new ArrayList();
        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);
        }
        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);
        }
        System.out.print("len = "+ q.list.size());
        if(q.list.size()>0){
            System.out.print(", data =");
            for(int i : q.list){
                System.out.print(" "+i);
            }
        }
        System.out.println();
        System.out.print("len = "+ out.size());
        if (out.size()>0){
            System.out.print(", data =");
            for(int i=0;i<out.size();i++){
                System.out.print(" "+out.get(i));
            }
        }
        scan.close();
    }
}

你好,如有帮助,请采纳!


import java.util.Scanner;

/**
 * 计算器
 * 写4个方法:加减乘除
 * 利用循环加switch进行用户交互
 * 传递需要操作的两个数
 * 输出结果
 */
public class Demo04 {
    public static double a;
    public static double b;
    //运算符
    public static String operator;
    //=符
    public static String equal;
    //结果
    public static double sum=0;
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("输入数字:");
        a = scanner.nextDouble();
        System.out.println("输入运算符:");
        operator = scanner.next();
        System.out.println("输入数字:");
        b = scanner.nextDouble();
        do {
            switch (operator){
                case "+":
                    sum= add(a, b);
                    System.out.println("输入=获取结果:");
                    equal = scanner.next();
                    coninue();
                    break;
                case "-":
                    sum=subtract(a,b);
                    System.out.println("输入=获取结果:");
                    equal = scanner.next();
                    coninue();
                    break;
                case "*":
                    sum=multiply(a,b);
                    System.out.println("输入=获取结果:");
                    equal = scanner.next();
                    coninue();
                    break;
                case "/":
                    if (b==0){
                        System.out.println("被除数不能为0");
                        operator = "q";
                        break;
                    }else {
                        sum=divide(a,b);
                        System.out.println("输入=获取结果:");
                        equal = scanner.next();
                        coninue();
                        break;
                    }
                default:
                    System.out.println("运算符输入错误!");
            }
        }while (operator.equals("+")||operator.equals("-")||operator.equals("*")||operator.equals("/"));
        scanner.close();
    }

    //加
    public static double add(double a,double b){
        return a+b;
    }
    //减
    public static double subtract(double a,double b){
        return a-b;
    }
    //乘
    public static double multiply(double a,double b){
        return a*b;
    }
    //除
    public static double divide(double a,double b){
        return a/b;
    }
    //获得结果 或 再次输入
    public static void coninue(){
        Scanner scanner = new Scanner(System.in);
        if (equal.equals("=")){
            System.out.println(a+operator+b+"="+sum);
            System.out.println("输入运算符+,-,*,/继续 或 输入其他字符结束");
            operator=scanner.next();
            if (operator.equals("+")||operator.equals("-")||operator.equals("*")||operator.equals("/")){
                System.out.println("输入数字:");
                b = scanner.nextDouble();
                a=sum;
            }else {
                System.out.println("输入错误!");
            }
        }else {
            System.out.println("输入错误!");
        }
    }
}

如有帮助,望采纳

img


  public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        float num=scanner.nextFloat();
        float num1=scanner.nextFloat();
        add(num1,num);   //加
        jian(num1,num); //减
        cheng(num1,num);//乘
        chu(num1,num);//除
    }
//    加法
    public  static Object add(float num1,float num){
      float result=(float) Math.round((num+num1)*10)/10;
        System.out.println(result);
        return result;
    }
//    减法
    public  static  Object jian(float num1,float num){
        if (num1>num){
            float temp =num;
            num=num1;
            num1=temp;
        }
        float result=(float) Math.round((num-num1)*10)/10;
        System.out.println(result);
        return result;
    }
//    乘法
    public  static  Object cheng(float num1,float num){
        if (num1>num){
            float temp =num;
            num=num1;
            num1=temp;
        }
        float result=(float) Math.round((num*num1)*10)/10;
        System.out.println(result);
        return result;
    }
//    除法
    public  static  Object chu(float num1,float num){
        if (num1>num){
            float temp =num;
            num=num1;
            num1=temp;
        }
        float result=(float) Math.round((num1/num)*10)/10;
        System.out.println(result);
        return result;
    }

给个例子参考吧,基本功能是实现了,特殊情况没考虑,题主可以自己试试,有问题自行完善:

import java.util.ArrayList;
import java.util.Scanner;

class Queue {
    private ArrayList<Integer> list;
    public Queue(int len,String[] list){
        this.list = new ArrayList<Integer>();
        for(int i=0;i<len;i++){
            this.list.add(Integer.parseInt(list[i]));
        }
    }

    public void inQueue(int i){
        this.list.add(i);   
    }

    public int[] outQueue(int len){
        int[] out = new int[this.list.size()<len?this.list.size():len];
        for(int i=0;i<out.length;i++){
            out[i] = this.list.get(i);
        }
        for(int i=out.length-1;i>=0;i--){
            this.list.remove(i);
        }
        return out;
    }

    public int getLen(){
        return this.list.size();
    }
    public ArrayList<Integer> getList(){
        return this.list;
    }
}

public class QueueTest {
    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;
        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]);
        }
        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]);
        }
        int[] out = q.outQueue(outNum);
        System.out.print("len = "+ q.getLen()+", data =");
        for(int i : q.getList()){
            System.out.print(" "+i);
        }
        System.out.println();
        if(outNum>0){
            System.out.print("len = "+ out.length+", data =");
            for(int i=0;i<out.length;i++){
                System.out.print(" "+out[i]);
            }
        }
        scan.close();   
    }
}

img