Software Engineering class Assignment (ix)--pair Development (IV)

Source: Internet
Author: User

First, title and requirements:

Title: Returns the maximum number of sub-arrays in an integer array and

Requirement (new addition): ① if array a[0] ... A[j-1] Next to the end, allow A[i-1] ... A[n-1],a[0] ... A[J-1] The sum of the largest; ② returns the position of the largest subarray at the same time.

Pair of people: Jiao Yanhu

Second, design ideas:

We want to solve two problems: find the largest subarray in the ring array, and locate the sub-array position, the name of their output. To solve these two problems, we start from the following two aspects:

① to find the largest sub-array: The array values in order to be called "a trip", each to find the maximum number of sub-array, the first value to the last, into a new trip, and so on, until the completion of the traversal, to find the largest rings array.

② positioning sub-array: Determines the current and the value is negative, it is taken out, and the number of the next number of places to be stored as the largest sub-array head. When the maximum value is calculated, the position of the number is stored as the tail of the subarray. The last output will be the name of the sub-array.

Third, the source code:

1 //Pair Development--Jiao Yanhu2 3#include"stdafx.h"4 5 6 int_tmain (intARGC, _tchar*argv[])7 {8     inti,j,k,m,n,o,a[5]; 9     intsum,max,flag,flag1=0, Flag2,flag4;Ten      Oneprintf"Please enter a 5 integer: \ n"); A      for(k=0;k<5; k++) -     { -scanf"%d",&a[k]); the     } -Max = a[0]; -      for(m=0;m<5; m++) -     { +          for(i=0;i<5; i++)   -         {   +Sum =0;  A              for(j=i;j<5; j + +)   at             {   -Sum =sum+A[j]; -                 if(sum<=0) -                 { -sum=0; -Flag1= (j+1+M)%5; in                 } -                 if(Sum >Max) to                 { +Max =Sum;  -flag2=j+m;  the                 } *             }   $         }  Panax Notoginsengflag=a[0]; -          for(n=0;n<5; n++) the         { +a[n]=a[n+1]; A         } thea[4]=Flag; +     } -     if(sum==0) $     { $          -max=a[0]; -          for(intE=0;e<5; e++) the         { -             if(a[e]>=Max)Wuyi             { themax=A[e]; -flag4=e; Wu             } -         } About          $     } -printf"The rings of the maximum contiguous array is:%d\n", Max); -printf"The maximum contiguous rings array is:"); -  A     if(sum==0) +     { theprintf"a[%d]", FLAG4); -     } $     Else the     { the         intflag3=flag2-Flag1; the          for(o=0; o<=flag3;o++) the         { -printf"a[%d]\t", Flag1); inflag1++; the             if(flag1>4) theflag1=0; About         } the     } theprintf"\ n"); the     return 0; +}

Iv. Test and operation results:

Test data:

3 6-9 0 7 (positive, negative, 0)

7 9 3 2 8 (positive only)

-3-6-9-2-5 (negative only)

Operation Result:

Five, Experience:

Software Engineering class Assignment (ix)--pair Development (IV)

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.