天天看點

最長平台

摘自《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 &lt; n; i++)

    {

        scanf("%d", &a[i]);

    }

    temp = a[0] - 1;

    num = 1;

    for(i = 0; i &lt; n; i++)

        if(temp != a[i])

        {

            temp = a[i];

            if(max_num &lt; num)

            {

                max_num = num;

                num = 1;

            }

        }

        else

            num++;

    printf("%d\n", max_num);

    return 0;

}

上一篇: lamp平台
下一篇: GIS平台

繼續閱讀