zoukankan      html  css  js  c++  java
  • 数组的相关问题

    抱歉 本来计划的13号完成的作业拖了这么久   本来计划用c#  最近在搞java就用java写了

    第一版本程序Prog1:

    + 给定一个数组,实现数组元素求和;,具体要求:实现对一维数组(a[100])的所有元素相加运算。
    + 数据准备:a)数组长度:100;b)数组数据来源:实验数据A列:1~100.

    第一版本程序Prog1:
    
    public class CopyOfArray {
        public static double sum=0;
        public static double[] Darray=new double[100];
        public static void main(String[] Sarry)
        {
            try
            {
                String buf=null;
                BufferedReader in=new BufferedReader(new FileReader("C:/Users/狸猫/Array/src/Array/数组表.csv") );
                int count=100;
                for(int i=0;i<count;i++)
                {
                    buf=in.readLine();
                    String[] temp=buf.split(",");
                    Darray[i]=Double.parseDouble(temp[0]);
                }
            
            
            for(int i=0;i<100;i++)
            {
                sum=sum+Darray[i];
            }
            in.close();
            System.out.println("sum="+sum);
            }
            catch(FileNotFoundException e)
            {
                e.printStackTrace();
            }
            catch(IOException e)
            {
    e.printStackTrace(); }
    catch(Exception e)
    { e.printStackTrace(); } }
    }

     以及运行结果

    第二版本程序Prog2:

    + 改写成一个函数(函数名称为ArraySum),能实现任意长度数组所有元素求和;
    + 数据准备:a)数组长度:任意; b)数组数据来源:实验数据A列.

     1 public class Array_2 {
     2      
     3     public static double sum=0;
     4     public static double[] Darray=new double[100];
     5     public static void main(String[] Sarry)
     6          { 
     7          int count=func_1();
     8           double fina=func(count);
     9              System.out.print("您说得的最后之后和为:"+fina);
    10            }
    11 
    12 static int func_1()
    13 {
    14     System.out.println("请输入任意的数组长度:");
    15         Scanner scan=new Scanner(System.in);
    16         int count=scan.nextInt();
    17         if(count>100||count<0){
    18             System.out.print("输入的有数值有问题,请重新输入");
    19         func_1();
    20         };
    21         return count;
    22 }
    23 static double func(double count)
    24 {
    25     try
    26     {
    27         String buf=null;
    28         BufferedReader in=new BufferedReader(new FileReader("C:/Users/狸猫/Array/src/Array/数组表.csv") );
    29         int icount=100;
    30         for(int i=0;i<icount;i++)
    31         {
    32             buf=in.readLine();
    33             String[] temp=buf.split(",");
    34             Darray[i]=Double.parseDouble(temp[0]);
    35         }
    36         for(int i=0;i<count;i++)
    37         {
    38             sum+=Darray[i];
    39         }
    40         in.close();
    41         System.out.println("sum="+sum);
    42         }
    43         catch(FileNotFoundException e)
    44         {
    45             e.printStackTrace();
    46         }
    47         catch(IOException e)
    48         {
    49             e.printStackTrace();
    50         }
    51         catch(Exception e)
    52         {
    53             e.printStackTrace();
    54         }
    55     return sum;
    56     
    57 }
    58 
    59 
    60 }

    运行结果

    第三版本程序Prog3:

    + 将Prog2改写成能从文件中读取数据,实现任意长度数组,指定范围内元素相加。

    + 数据准备:a)数组长度:任意; b)数组数据来源:从文件中读取.

    这个地方比较有趣,看到array_2的代码可以再利用  里面的分析输入数据的判断条件本来想重写,最后发现融在一起重写太麻烦,用fjudge_2之前只要加入个判断初始条件如果在数组之内就可以代码再利用

    Quenstion_1:这里有个问题在数据读入方向,如何读入两次数据进行判断,我觉得应该有更精简的办法,希望哪位大牛能给出解决办法

    public class Array_3 {
            public static double sum=0;
            public static double[] Darray=new double[100];
    public static void main(String[] Sarry)
        { 
         int fnum=fjudge_2();
         int count=fjudge_1(fnum);
         double fina=func(fnum,count);
         System.out.print("您说得的最后之后和为:"+fina);
        }
    
        static int fjudge_1(int fnum)
        {
                System.out.println("请输入任意的数组长度:");
                Scanner scan=new Scanner(System.in);
                int count=scan.nextInt();
                int fcount=count+fnum;
                if((count>99||count<0)&&(fcount>99))
                {
                    System.out.print("WARING: 输入的有数值有问题,请重新输入(请输入<100整数):");
                    fjudge_1(fnum);
                };
                return count;
        }
        
        static int fjudge_2()
        {
            System.out.println("请输入您想开始的数据位置:");
            Scanner scan=new Scanner(System.in);
            int fnum=scan.nextInt();
            if(fnum>100||fnum<0)
            {
                System.out.print("WARING: 输入的有数值有问题,请重新输入(请输入<100整数):");
                fjudge_2();
            };
            return fnum;
        }
            
        static double func(int fnum,int count)
        {
            try
            {
                String buf=null;
                BufferedReader in=new BufferedReader(new FileReader("C:/Users/狸猫/Array/src/Array/数组表.csv") );
                int icount=100;
                for(int i=0;i<icount;i++)
                {
                    buf=in.readLine();
                    String[] temp=buf.split(",");
                    Darray[i]=Double.parseDouble(temp[0]);
                }
                for(int i=fnum;i<count;i++)
                {
                    sum+=Darray[i];
                }
                in.close();
                System.out.println("sum="+sum);
                }
                catch(FileNotFoundException e)
                {
                    e.printStackTrace();
                }
                catch(IOException e)
                {
                    e.printStackTrace();
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                }
            return sum;
            
        }
    
    
        }

    运行结果

      gihub  https://github.com/Vpygmalion

  • 相关阅读:
    cogs luogu 1901. [国家集训队2011]数颜色 待修改莫队
    luogu cogs 421. HH的项链
    luogu P2709 小B的询问
    排序
    算法基本概念
    金融的简单介绍
    Admin组件-----Django自带
    day02-菜单处理
    day01
    selenium常用方法
  • 原文地址:https://www.cnblogs.com/Vpygamalion/p/5302615.html
Copyright © 2011-2022 走看看