Chinaunix首页 | 论坛 | 博客
  • 博客访问: 939527
  • 博文数量: 633
  • 博客积分: 30780
  • 博客等级: 大将
  • 技术积分: 7532
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-12 21:07
文章分类

全部博文(633)

文章存档

2011年(10)

2010年(500)

2009年(47)

2008年(76)

我的朋友

分类:

2008-05-25 12:04:15


#include <stdio.h>
#include <stdlib.h>

void show_arriy(int arriy[], int n)
{
    int i = 0;
    for (; i < n; i++)
        printf("%d ", arriy[i]);
    printf("\n");

    return;
}

void get_input(int arriy[], int n)
{
    int i = 0;
    for (; i < n; i++)
        scanf("%d", arriy + i);
    
    return;
}

int get_max_sum(int arriy[], int n)
{
    int current_max = 0;
    int i, j;
    int sum = 0;

    for (i = 0; i < n; i++)
    {
        sum = 0;
        for( j = i; j < n; j++)
        {
            sum += arriy[j];
            if (current_max < sum)
                current_max = sum;
        }
    }

    return current_max;
}

int main (int argc, char* argv[])
{
    if (argc != 2)
    {
        fprintf(stderr, "Usage: ./a.out n\n");
        exit(1);
    }
    int n = atoi(argv[1]);
    if (n < 1)
    {
        fprintf(stderr, "Usage: ./a.out. n\n");
        exit(1);
    }

    int * p_arriy = (int*)malloc(sizeof(int) * n);
    if (NULL == p_arriy)
    {
        fprintf(stderr, "stevens: malloc error!\n");
        exit(1);
    }

    get_input(p_arriy, n);
    show_arriy(p_arriy, n);
    printf("the max sum is %d\n", get_max_sum(p_arriy, n));

    return 1;
}

阅读(511) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~