数组2

package 数组;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Test3 {
    public static void main(String[] args)throws IOException
    {
        List<Integer> list=new ArrayList<>();
        Scanner scan=new Scanner(System.in);
        int x=1;
        while(x!=0)
        {
        System.out.println(":1、输入数组       2、大数组     0、退出");
        x=scan.nextInt();
        if(x==1)
        {
         try {
                File file = new File("f:\\shuzu.txt");
                if(file.isFile() && file.exists()) {
                  InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
                  BufferedReader br = new BufferedReader(isr);
                  String lineTxt = "";
                  while ((lineTxt = br.readLine()) != null){
                   list.add(Integer.parseInt(lineTxt));
                  }
                  Object[]a=list.toArray();
                  System.out.println((int)a[1]+(int)a[3]);
                  br.close();
                     int sum=a.length;
                     int sum1=0;
                        for(int i=1;i<=sum;i++)
                        {
                            sum1=sum1+i;
                        }
                        int [] b=new int[sum1];
                        int temp1=0;
                        for(int i=0;i<sum;i++)
                        {
                            int temp=0;
                            for(int k=0;k<sum-i;k++)
                            {   
                                temp=temp+(int)a[i+k];
                                b[temp1]=temp;
                                temp1++;
                            }
                        }
                        for(int i=0;i<sum1-1;i++)
                            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;
                                }
                            }
                        System.out.println("最大的子数组和为"+b[0]);
                } else {
                  System.out.println("文件不存在!");
                }
              } catch (Exception e) {
                System.out.println("文件读取错误!");
              }
        }
        if(x==2)
        {
            FileWriter fw = null;
              try {
                    //创建字符输出流
                    fw = new FileWriter("f:\\shuzu1.txt");
                    for(int i=0;i<50;i++)
                    {
                        int intval=(int)(Math.random()*-9000000+8999999);
                    fw.write(""+intval+"\r\n");
                    }
                } catch (IOException ioe) {
                    ioe.printStackTrace();
                } finally {
                    //使用finally块来关闭文件输出流
                    if (fw != null) {
                        fw.close();
                    }
                }
              try {
                    File file = new File("f:\\shuzu1.txt");
                    if(file.isFile() && file.exists()) {
                      InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
                      BufferedReader br = new BufferedReader(isr);
                      String lineTxt = "";
                      while ((lineTxt = br.readLine()) != null){
                       list.add(Integer.parseInt(lineTxt));
                      }
                      Object[]a=list.toArray();
                      System.out.println((int)a[1]+(int)a[3]);
                      br.close();
                         int sum=a.length;
                         int sum1=0;
                            for(int i=1;i<=sum;i++)
                            {
                                sum1=sum1+i;
                            }
                            int [] b=new int[sum1];
                            int temp1=0;
                            for(int i=0;i<sum;i++)
                            {
                                int temp=0;
                                for(int k=0;k<sum-i;k++)
                                {   
                                    temp=temp+(int)a[i+k];
                                    b[temp1]=temp;
                                    temp1++;
                                }
                            }
                            for(int i=0;i<sum1-1;i++)
                                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;
                                    }
                                }
                            System.out.println("最大的子数组和为"+b[0]);
                    } else {
                      System.out.println("文件不存在!");
                    }
                  } catch (Exception e) {
                    System.out.println("文件读取错误!");
                  }
        }
        }
        if(x==0)
        {
            System.out.println("已退出。");
        }
              }

}

 

posted @ 2019-03-17 20:43  birdmmxx  阅读(91)  评论(0编辑  收藏  举报