整数数组中最大子数组求和02

设计思路:

在“整数数组中最大子数组求和01”的基础上完成本次实验。

本次实验的关键在于如何判断结束。

经设计,程序结束条件有两种:1.截取部分有重复;2.循环完整两次。

满足其中任一条件则循环结束。

代码:

 1 //20160327
 2 #include<iostream>
 3 #include<algorithm>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int arr[100];
 9     int NUM = 0;
10     int MAXSUM = 0;
11     int MINNUMend = 0;
12     int MINSUM = 0;
13     int SUM = 0;
14     int jump = 0;
15     int start = -1;
16     for (; NUM < 100; NUM++)
17     {
18         cin >> arr[NUM];
19         if (getchar() == '\n')
20         {
21             break;
22         }
23     }
24     if (NUM == 100)
25     {
26         NUM = 99;
27     }
28     for (int i = 0;; i < NUM ? i++ : i = 0)
29     {
30         if (i == 0)
31         {
32             jump += 1;
33             if (jump == 3)
34             {
35                 break;
36             }
37         }
38         if (start == i)
39         {
40             break;
41         }
42         SUM = min(SUM + arr[i], arr[i]);
43         if (MINSUM > SUM)
44         {
45             MINNUMend = i;
46         }
47         MINSUM = min(SUM, MINSUM);
48         if (start == -1)
49         {
50             start = 0;
51         }
52         if (SUM >= 0)
53         {
54             start = i;
55         }
56     }
57     SUM = 0;
58     jump = 0;
59     start = -1;
60     for (int i = MINNUMend;; i < NUM ? i++ : i = 0)
61     {
62         if (i == MINNUMend)
63         {
64             jump += 1;
65             if (jump == 3)
66             {
67                 break;
68             }
69         }
70         if (start == i)
71         {
72             break;
73         }
74         SUM = max(SUM + arr[i], arr[i]);
75         MAXSUM = max(SUM, MAXSUM);
76         if (start == -1)
77         {
78             start = MINNUMend;
79         }
80         if (SUM <= 0)
81         {
82             start = i;
83         }
84     }
85     cout << "最大和:" << MAXSUM << endl;
86     return 0;
87 }
View Code

测试截图:

 

此次结对编程队友为 李娜。

http://www.cnblogs.com/linanil/p/5323599.html

posted on 2016-03-27 17:53  狞_JML  阅读(202)  评论(2编辑  收藏  举报

导航