给定一个整形数组b[n],b中连续相等元素构成的子序列称为平台。编写程序,求出b中最长平台的长度。
谢谢!
给定一个整形数组b[n],b中连续相等元素构成的子序列称为平台。编写程序,求出b中最长平台的长度。
谢谢!
int main(int argc, char* argv[])
{
int b[] = {1,2,3,5,6,7,8,10,11,12,13,14,15,16,20,21,22,23,24,25,26,27,28,29,30,31};
int j = 0;
int nMaxNum =1;
int nCurNum = 1;
for(int i= 1;i < sizeof(b)/sizeof(int);i++) {
if (b[j] == b[i] - 1) nCurNum ++;
else
nCurNum = 1;
j = i;
if (nCurNum >= nMaxNum) nMaxNum = nCurNum;
}
printf("nMaxNum:%d\n",nMaxNum);
return 0;
}
你试试看。
#define N ? int i=1,temp=1,max=0,b[N]={....} for(;i<n;i++){ if(b[i-1]==b[i])temp++; else temp=1; if(max<temp) max=temp; } printf("%d",max);
不是 很 明白 意思:
假定一个 数组 :
{ 1 , 3 , 1,1,1,2} ----->这个 平台的 长度 是 3 吗 ??