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

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

  • 相关阅读:
    iOS真机调试配置
    C语言-09-文件操作
    C语言-08-预处理器
    UILabel和NSAttributedString那些事
    验证码倒计时按钮
    验证码/密码按位分割输入框
    CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
    UISearchBar改变搜索框的高度
    二维码名片的生成与读取
    设计模式-02-单例
  • 原文地址:https://www.cnblogs.com/KYin/p/10555127.html
Copyright © 2011-2022 走看看