zoukankan      html  css  js  c++  java
  • 个人作业2,

    实验要求:

    要求数组从文件读取

    如果输入的数组很大,并且有很多大的数字,就会产生比较大的结果(考虑一下数的溢出),请保证你的程序能正常输出。

    另外,如果输入文件的参数有错误,这个程序应该能正常退出,并显示相应的错误信息。任何输入错误都不能导致你的程序崩溃。

    设计思路:

    在之前的程序的基础上,增加一段文件导入的代码,形成现在的代码,

    package sum;
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.util.Scanner;
    
    public class sum {
        static double GetMaxAddOfArray(double[] arr, int sz)
        {
            if (arr == null || sz < 1)
                return 0;
            double MAX = arr[0];
            double sum = arr[0];
            for (int i = 1; i < sz; i++)
            {
                if (sum < 0)
                    sum = arr[i];
                else
                {
                    sum += arr[i];
                }
    
                if (sum > MAX)
                    MAX = sum;
            }
            return MAX;
        }
            public static void main(String[] args) {
                /* Scanner input=new Scanner(System.in);
                    int n;
                    System.out.println("输入数组个数:");
                    n=input.nextInt();
                    int i;
                    int arr[]=new int[n];
                    for(i=0;i<n;i++) {
                        arr[i]=input.nextInt();
                    }*/
                
                double arr[] = new double[100000];
                try (Scanner scanner = new Scanner(new BufferedReader(new FileReader(
                        "F:\新建文件夹\Sum\新建文本文档.txt")));) {
                    int n=0;
                    while (scanner.hasNext()) {
                        double s = Double.parseDouble(scanner.next());
                        arr[n]=s;
                        n++;
                        System.out.println(s);
                    }
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
                   int m=arr.length;
                   System.out.println("最大子数组的和:");
                    System.out.println(GetMaxAddOfArray(arr,m));
            }
    }

    但是目前代码存在一些问题:就是内存的溢出,当数据量过大时,程序就会报错;目前还没有找到解决的方法;仍需改进。

  • 相关阅读:
    【Leetcode】23. Merge k Sorted Lists
    【Leetcode】109. Convert Sorted List to Binary Search Tree
    【Leetcode】142.Linked List Cycle II
    【Leetcode】143. Reorder List
    【Leetcode】147. Insertion Sort List
    【Leetcode】86. Partition List
    jenkins 配置安全邮件
    python 发送安全邮件
    phpstorm 同步远程服务器代码
    phpUnit 断言
  • 原文地址:https://www.cnblogs.com/KYin/p/10555127.html
Copyright © 2011-2022 走看看