zoukankan      html  css  js  c++  java
  • 软件工程作业06

     

                                                          实验6:环形数组求和

                                                          程序员:吕泽坤, 黄梓宣

                                                          日期:17:31:35   


    (一)

    设计思路:

     1 输入数组长度

     2 输入数组

          2.2进行数组变为循环数组,

                for(i=length;i<2*length;i++)
                 {
                 arry[i]=arry[i-length];
                 }
    3   进行最大值求解

         3.2首先确定循环次数length

               3.2.2 arry2[j]=arry[j];表为首位整数

               3.2.3进行子数组(长度为length)循环次数

                        //当前i个元素之和大于0就接着往后加 arry2[i]=arry[i]+arry2[i-1];
                        )//当前i个元素之和小于0就不加,直接把下一个元素的值直接取下来
                        arry2[i]=arry[i];   
                3.2.4进行max比较确定

     4输出Max                       

                         

    (二)

    实验代码:

     1 package shuzu01;
     2 
     3 import java.util.Scanner;
     4 import java.lang.*;
     5 public class Test {
     6     
     7     private static boolean flase;
     8     private static Scanner in;
     9     @SuppressWarnings("unused")
    10     public  static void main(String arg[])
    11     {
    12         int i,j=0;
    13         Scanner input =new Scanner(System.in);
    14         System.out.println("请输入一个数组的长度");
    15         int length=input.nextInt();
    16          
    17         int []arry=new int[2*length];
    18         int []arry2=new int[2*length];
    19         
    20         System.out.println("请输入一个数组");
    21         for(i=0;i<length;i++ )
    22         {
    23             
    24             int a=input.nextInt();
    25             isNumeric(a);
    26             if(false)
    27                 {
    28                   System.out.println("请输入一个整数");
    29                   int s=input.nextInt();
    30                    
    31                   arry[i]=s;
    32                 }
    33             arry[i]=a;
    34             j++; 
    35         }
    36         //形成环形数组
    37         for(i=length;i<2*length;i++)
    38         {
    39             arry[i]=arry[i-length];
    40         }
    41         //求和最大值
    42         int max=arry[0];
    43         for( j=0;j<length;j++)
    44         {
    45             arry2[j]=arry[j];
    46             max=Math.max(max,arry[j]);
    47             for(i=j+1;i<length+j;i++)
    48             {
    49                 if(arry2[i-1]>=0)//当前i个元素之和大于0就接着往后加
    50                     arry2[i]=arry[i]+arry2[i-1];
    51                 if(arry2[i-1]<0)//当前i个元素之和小于0就不加,直接把下一个元素的值直接取下来
    52                     arry2[i]=arry[i];    
    53                 
    54                 //找到最大值
    55                 max=Math.max(max,arry2[i]);
    56             }
    57         }
    58         System.out.print("最大值"+max);//打印最大值
    59         
    60     
    61         
    62     
    63                 
    64         
    65         
    66         
    67         
    68         /*for(i=0;i<length;i++ )
    69         {
    70             System.out.println(arry[i]);
    71         }*/
    72     
    73     }
    74 
    75 
    76 
    77 
    78 
    79     public static boolean isNumeric(int a)
    80     {
    81              if (!Character.isDigit(a))
    82               {       
    83                  return false;
    84               }
    85           
    86           
    87            return true;
    88          }
    89 
    90 }


    (四)总结

         首先进行的是循环数组天加,其次在数组 求和是数组溢出,超过范围。斌进行数字的判断,提示输入错误。

         团队照片:

  • 相关阅读:
    存储过程中执行动态Sql语句
    模拟alert和confirm
    SignalR
    Html5实践之EventSource
    Java路径操作具体解释
    HDU 1330 Nearest Common Ancestors(求两个点的近期公共祖先)
    Graph(2014辽宁ACM省赛)
    基于注解的Spring MVC整合Hibernate(所需jar包,spring和Hibernate整合配置,springMVC配置,重定向,批量删除)
    W5500问题集锦(二)
    Android Fragment 简单实例
  • 原文地址:https://www.cnblogs.com/gdp176119/p/5379344.html
Copyright © 2011-2022 走看看