C----------输入一组整数,求出这组数字子序列和中的最大值,只要求出最大子序列的和,不必求出最大值对应的序列。

© 版权声明:本文为博主原创文章,转载请注明出处

代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #define GET_ARRAY_LEN(array, len){len = sizeof(array) / sizeof(array[0]);}// 定义一个带参数的宏,将数组长度存储在变量len中
 4 
 5 int main()
 6 {
 7     int seq[] = {2, 11, -4, 13, -5, 2, -5, -3, 12, -9};// 数组
 8     int i, j, len, max;
 9 
10     GET_ARRAY_LEN(seq, len);// 计算数组长度
11     max = seq[0];// 初始化最大值
12 
13     for (i = 0; i < len; i++) {
14         int temp = seq[0];
15         for (j = i + 1; j < len; j++) {
16             temp += seq[j];
17             if (temp > max) {
18                 max = temp;
19             }
20         }
21     }
22 
23     printf("The maximum of the subsequence is %d\n", max);
24 
25     return 0;
26 }

结果:

 

posted @ 2017-10-26 18:01  禁忌夜色153  阅读(999)  评论(0编辑  收藏  举报