最大連續子數組(C語言)

這是最基本的方法(暴力法)
先判斷兩個之中的最大值,再判斷三個之中的最大值依次類推得到結果
代碼如下:

#include <stdio.h>

int main(int argc, char *argv[])
{

    int A[13]={1,2,3,4,5,6,7,8,9,10,11,12,13},i,max,min;
    for(i=0;i<12;i++)
    {

     min=A[i]+A[i+1];
     if(max<=min)
     {
         max=min;
     }

    }
   //max=25
    for(i=0;i<11;i++)
    {
        min=A[i]+A[i+1]+A[i+2];
        if(max<=min)
        {
            max=min;
        }
    }
    //printf("%d",max);
    for(i=0;i<10;i++)
    {
        min=A[i]+A[i+1]+A[i+2]+A[i+3];
        if(max<=min)
        {
            max=min;
        }
    }
    //printf("%d",max);

    for(i=0;i<9;i++)
    {
        min=A[i]+A[i+1]+A[i+2]+A[i+3]+A[i+4];
        if(max<=min)
        {
            max=min;
        }
    }
   //printf("%d",max);
    for(i=0;i<8;i++)
    {
        min=A[i]+A[i+1]+A[i+2]+A[i+3]+A[i+4]+A[i+5];
        if(max<=min)
        {
            max=min;
        }
    }
   //printf("%d",max);
    for(i=0;i<7;i++)
    {
        min=A[i]+A[i+1]+A[i+2]+A[i+3]+A[i+4]+A[i+5]+A[i+6];
        if(max<=min)
        {
            max=min;
        }
    }
   //printf("%d",max);
    for(i=0;i<6;i++)
    {
        min=A[i]+A[i+1]+A[i+2]+A[i+3]+A[i+4]+A[i+5]+A[i+6]+A[i+7];
        if(max<=min)
        {
            max=min;
        }
    }
   //printf("%d",max);
    for(i=0;i<5;i++)
    {
        min=A[i]+A[i+1]+A[i+2]+A[i+3]+A[i+4]+A[i+5]+A[i+6]+A[i+7]+A[i+8];
        if(max<=min)
        {
            max=min;
        }
    }
   //printf("%d",max);
    for(i=0;i<4;i++)
    {
        min=A[i]+A[i+1]+A[i+2]+A[i+3]+A[i+4]+A[i+5]+A[i+6]+A[i+7]+A[i+8]+A[i+9];
        if(max<=min)
        {
            max=min;
        }
    }
   //printf("%d",max);
    for(i=0;i<3;i++)
    {
        min=A[i]+A[i+1]+A[i+2]+A[i+3]+A[i+4]+A[i+5]+A[i+6]+A[i+7]+A[i+8]+A[i+9]+A[i+10];
        if(max<=min)
        {
            max=min;
        }
    }
   //printf("%d",max);
    for(i=0;i<2;i++)
    {
        min=A[i]+A[i+1]+A[i+2]+A[i+3]+A[i+4]+A[i+5]+A[i+6]+A[i+7]+A[i+8]+A[i+9]+A[i+10]+A[i+11];
        if(max<=min)
        {
            max=min;
        }
    }
   //printf("%d",max);
    for(i=0;i<1;i++)
    {
        min=A[i]+A[i+1]+A[i+2]+A[i+3]+A[i+4]+A[i+5]+A[i+6]+A[i+7]+A[i+8]+A[i+9]+A[i+10]+A[i+12];
        if(max<=min)
        {
            max=min;
        }
    }
   printf("%d",max);

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章