• 4.25软件工程课下作业


    源代码:

    package text;
    import java.util.Scanner;
    
    import javax.swing.JOptionPane;
    
    public class shuzu2 {
        public static void main(String []args)
        {
            Scanner s=new Scanner(System.in);
            String str1=JOptionPane.showInputDialog(null,"请输入数组长度:");
            int sum=Integer.parseInt(str1);
            int []a=new int[sum];
            JOptionPane.showMessageDialog(null,"请输入"+sum+"个数");
            for(int i=0;i<sum;i++)
            {
                String str2=JOptionPane.showInputDialog(null,"请输入第"+(i+1)+"个数:");
                a[i]=Integer.parseInt(str1);;
            }
            s.close();
            int sum1=0;
            for(int i=1;i<=sum;i++)
            {
                sum1=sum1+i;
            }
            int [] b=new int[sum1];
            int temp1=0;
            int max=a[0];
            int temp3=0;
            int temp4=0;
            for(int i=0;i<sum;i++)
            {
                int temp=0;
                for(int k=0;k<sum-i;k++)
                {  
                    temp=temp+a[i+k];
                    b[temp1]=temp;
                     if(max<b[temp1])
                     {  temp3=i;
                        temp4=k+1;
                         max=b[temp1];
                     }
                     if(temp1==0)
                        System.out.println("第1次:a[0]为最大子数组是"+a[0]);
                     else{
                     if(max==b[temp1])
                        System.out.println("第"+(temp1+1)+"次:a["+temp3+"]到a["+(temp3+temp4-2)+"],a["+i+"]到a["+(i+k)+"]的和最大为:"+temp);
                     else
                         System.out.println("第"+(temp1+1)+"次:a["+i+"]到a["+(i+k)+"],a["+temp3+"]到a["+(temp3+temp4-1)+"]的和最大为:"+max);
                     }
                     temp1++;
                }
            }
            System.out.println("所有子数组和数组如下:");
            for(int i=0;i<sum1-1;i++)
            {
                System.out.print(b[i]+" ");
            }
            System.out.println("");
            System.out.println("其排序如下");
            int temp=1;
            for(int i=0;i<sum1-1;i++)
            {
                System.out.print("第"+temp+"次排序:");
                for(int k=0;k<sum1-1-i;k++)
                {
                    if(b[k]<b[k+1])
                    {
                        int temp2=b[k];
                        b[k]=b[k+1];
                        b[k+1]=temp2;
                    }
                }
                for(int j=0;j<sum1-1;j++)
                {
                    System.out.print(b[j]+" ");
                }
                System.out.println("");
                temp++;
            }
            JOptionPane.showMessageDialog(null,"最大的子数组和为"+b[0]);
        }
    }

    结果:

  • 相关阅读:
    网页版游戏(俄罗斯方块)
    模拟简单进程调度实验
    从小型网站到超大规模网站的MySQL参考架构
    Google Chart Tools学习笔记 二 Area Chart
    大话设计模式——建造者模式
    内存管理:分页,分段,段页结合
    2012第50周星期一自制力网摘
    第49周星期五糟糕破系统
    2012年第50周四
    2012第50周五
  • 原文地址:https://www.cnblogs.com/lover995/p/10770722.html
Copyright © 2020-2023  润新知