C程序求指导
已知从一个已经从小到大排列好的数组,说这个数组中的一个平台,就是连续的一串值相同的元素,并且这一串元素不能再延伸。试编写一个程序,接受这个数组,把这个数组中最长的平台找出来。
程序如下:
int longest_plateau(int x[],int n)
{
int length=1;
int i;
for(i=1;i<n;i++)
if(x[i]==x[i-length])
length++;
return 0;
}
问题是:改写程序,指出最长平台位置。
[解决办法]
- C/C++ code
int longest_plateau(int x[],int n){ int length=1; int result = length; for(int i=1;i<n;i++) { if(x[i]==x[i-1]) result = (++length); else length = 1; } return result;}
[解决办法]
- C/C++ code
//上面的错了int longest_plateau(int x[],int n){ int length=1; int result = length; for(int i=1;i<n;i++) { if(x[i]==x[i-1]) { ++length; result = (length>result?length:result); } else length = 1; } return result;}
[解决办法]
- C/C++ code
int longest_plateau(int x[],int n){ int length=1, result=0; int i; for(i=1;i<n;i++) { if(x[i]==x[i-length]) length++; else length = 1; if(result < length) result = length; } return result;}
[解决办法]
int longest_plateau(int x[],int n)
{
int length=1;
int result=0;
int i;
for(i=1;i<n;i++)
{
if(x[i]==x[i-1])
length++;
else
length=1;
if(result < length)
result = length;
}
return result;
}
[解决办法]
[解决办法]