- 论坛徽章:
- 0
|
本帖最后由 lqglqy 于 2010-09-19 17:27 编辑
这样可以!还有更好的没啊?!!!!!求教~~~~~~- #include <stdlib.h>
- #include <stdio.h>
- int max_array(int *p_a, int len)
- {
- int max = 0;
- int i,count=0;
- int start = 0;
- int end = 0;
- for (i=0; i<len; i++) {
- count += p_a[i];
- if (count < 0) {
- count = 0;
- start = i+1;
- }
- if (count > max) {
- max = count;
- end = i+1;
- }
- }
- printf("{");
- for (;start<end;start++) {
- printf("%d",p_a[start]);
- if (start+1 < end)
- printf(",");
- }
- printf("}");
- return max;
- }
- /*
- * === FUNCTION ======================================================================
- * Name: main
- * Description:
- * =====================================================================================
- */
- int
- main ( int argc, char *argv[] )
- {
- int a[] = {9, -12, 120, 8, -20, 100, 30, -89, 20};
- int max = max_array(a, sizeof(a)/sizeof(a[0]));
- printf("=sum[%d]\n",max);
- return EXIT_SUCCESS;
- } /* ---------- end of function main ---------- */
复制代码 |
|