摘自《C語言名題精選百則》
題目:已知一個已經從小到大排好列的數組,說這個數組中的一個平台(Plateau),就是連續一串值相同的元素,并且這一串元素不能再延伸。例如,在1,2,2,3,3,3,4,5,5,6中1,2.2,3.3.3,4,5.5,6都是平台。試編寫一個程式,接受一個數組,把這個數組中最長的平台找出來,在上面的例子中3.3.3是該數組的最長的平台。
我當時寫的程式是下面這樣的(結尾附上書中給的大牛寫的參考):
#include <stdio.h>
#define N 100
int main(int argc, char *argv[])
{
int max_num = -1, num, temp;
int i;
int a[N];
int n;
scanf("%d", &n);
for(i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
temp = a[0] - 1;
num = 1;
for(i = 0; i < n; i++)
if(temp != a[i])
{
temp = a[i];
if(max_num < num)
{
max_num = num;
num = 1;
}
}
else
num++;
printf("%d\n", max_num);
return 0;
}