小代码 bug数组之最大升序列

  /***************

  求序列最大升序 

   在定义数组 不指明大小时最好写出数组大小

 ******************/

#include <iostream>

using namespace std;

int main()

{


//int a[30]={1,2,3,4,5,3,4,6,2,7,8,1,2,3,4,5,6,7,8,9,5,6};

int a[30]={1,2,3,4,5,6,7,8,9,1,2,2,2,3,4,5,6,7,8,9,10,11,1,2,3};

int b[30]={0};

int maxb=0,i,j;

for( i=1;i<sizeof(a)/sizeof(a[0]);i++)

{

  j=i;

 while(a[j]>a[j-1])j++;

   b[i]=j-i; 

}

for(  i=1;i<sizeof(b)/sizeof(b[0]);i++)

{

 if(b[i]>maxb)maxb=b[i]; 

}

for(  i=1;i<sizeof(b)/sizeof(b[0]);i++)

{

 if(b[i]==maxb) 

    {

 for(  j=i-1;j<i+maxb;j++)cout<<a[j]<<" ";  

 cout<<endl<<" 起点 a[i] = "<<a[i-1]<<"长度 maxb = "<<maxb+1<<endl;

    }

}

 

return 0;

}

/***************

 int A[]={1,2,3};

for(int i=0;i<sizeof(A)/sizeof(A[0]);i++)

cout<<A[i]<<endl;

return 0;

这里没有死循环

 **************/