能用就好 2021-04-19 23:05 采纳率: 0%
浏览 22

每次首次执行排序后最大值都会变成0

package com;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

public class SuiJiShuLie {
    public static void main(String[] args){
        new window();
    }
}
class window extends JFrame{
    window(){
        pan p =new pan();
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        this.setBounds(500,300,500,500);
        this.setVisible(true);
        this.add(p);
    }
}
class pan extends JPanel implements ActionListener{
    JLabel jl1,jl2,jl3,jl4,jl5,jl6;
    JButton jb1,jb2,jb3,jb4,jb5;
    JTextArea jta1,jta2;
    JTextField jt1,jt2,jt3;
    int[] arr=new int[21];
    pan(){
        this.setLayout(null);
        jl1=new JLabel("20个随机数:");
        jl2=new JLabel("随机数求和:");
        jl3=new JLabel("随机数排列:");
        jl6=new JLabel("(从大到小)");
        jl4=new JLabel("最大值:");
        jl5=new JLabel("最小值:");
        jb1=new JButton("20个随机数");
        jb2=new JButton("随机数求和");
        jb3=new JButton("随机数排列");
        jb4=new JButton("最大值");
        jb5=new JButton("最小值");
        jta1=new JTextArea();
        jta2=new JTextArea();
        jt1=new JTextField();
        jt2=new JTextField();
        jt3=new JTextField();
        this.add(jl1);
        this.add(jl2);
        this.add(jl3);
        this.add(jl4);
        this.add(jl5);
        this.add(jl6);
        this.add(jb1);
        this.add(jb2);
        this.add(jb3);
        this.add(jb4);
        this.add(jb5);
        this.add(jta1);
        this.add(jta2);
        this.add(jt1);
        this.add(jt2);
        this.add(jt3);
        jl1.setBounds(20,20,100,20);
        jl2.setBounds(20,120,100,20);
        jl3.setBounds(20,70,100,20);
        jl6.setBounds(20,90,100,20);
        jl4.setBounds(20,150,100,20);
        jl5.setBounds(20,180,100,20);
        jb1.setBounds(20,400,100,20);
        jb2.setBounds(140,400,100,20);
        jb3.setBounds(260,400,100,20);
        jb4.setBounds(140,370,100,20);
        jb5.setBounds(20,370,100,20);
        jt1.setBounds(120,120,50,20);
        jt2.setBounds(120,150,50,20);
        jt3.setBounds(120,180,50,20);
        jta1.setBounds(120,20,170,40);
        jta2.setBounds(120,70,170,40);
        jb1.addActionListener(this);
        jb2.addActionListener(this);
        jb3.addActionListener(this);
        jb4.addActionListener(this);
        jb5.addActionListener(this);
    }
    public void actionPerformed(ActionEvent e) {
        String somethings=e.getActionCommand();
        switch (somethings){
            case "20个随机数":
                way01();
                break;
            case"随机数求和":
                way02();
                break;
            case"随机数排列":
                way05();
                break;
            case"最大值":
                way03();
                break;
            case"最小值":
                way04();
                break;
        }
    }
    void way01(){
        Random rd=new Random();
        String s="";
        for(int i=0;i<20;i++){
            arr[i]=rd.nextInt(100);
        }
        for(int i=0;i<20;i++){
            if(arr[i]<10){
                s="0"+arr[i]+" "+s;
            }else{
                s=arr[i]+" "+s;
            }
            if(i==9){
                s="\n"+s;
            }
        }
        jta1.setText(s);
    }
    void way02(){
        int sum=0;
        for(int i=0;i<20;i++){
            sum=arr[i]+sum;
        }
        String a = sum+"";
        jt1.setText(a);

    }
    void way03(){
        int max=0;
        for(int i=0;i<20;i++){
            if(arr[i]>max){
                max=arr[i];
            }
        }
        String a=max+"";
        jt2.setText(a);
    }
    void way04(){
        int min=100;
        for(int i=0;i<20;i++){
            if(arr[i]<min){
                min=arr[i];
            }
        }
        String a=min+"";
        jt3.setText(a);
    }
    void way05(){
        for(int i=0;i<20;i++) {
            for(int j=0;j<20-i;j++){
               if(arr[j]>arr[j+1]){
                    int temp =arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
               }
            }
        }                   //首次执行排序后最大值都会变成   00
        String s="";
        for(int i=0;i<20;i++){
            if(arr[i]<10){
                s="0"+arr[i]+" "+s;
            }else{
                s=arr[i]+" "+s;
            }
            if(i==9){
                s="\n"+s;
            }
        }
        jta2.setText(s);
    }
}
  • 写回答

1条回答 默认 最新

  • BCS-点心 2021-04-20 09:17
    关注

    1.大概看了下,这是一个随机产生20个数,然后做一些操作的功能

    2.现在排序这里有些问题,你把排序的这个功能单独拿出来到一个测试类中去

    3.在测试类里随机生成一个20个数的数组,使用排序功能,如果有问题,就是排序代码的事

    评论

报告相同问题?

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上