关于c++数组的问题,如何解决?

img

img


我的代码:

#include
using namespace std;
int main()
{
    long long max=0,t,i,n,c,a[10000];
    cin>>n;
    for(i=0;i>a[i];
        if(a[i]==a[i-1])
        {
            t+=1;
        }
        else
        {
            if(t>max)
            {
                max=t;
            }
            t=0;
        }
    }
    cout<return 0;
}
#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n, max_len = 1, curr_len = 1; // n为数组长度,max_len为最长平台长度,curr_len为当前平台长度,初始化均为1
    cin >> n; // 输入数组长度
    vector<int> a(n); // 定义长度为n的int型向量a
    for (int i = 0; i < n; i++) cin >> a[i]; // 循环输入n个数组元素
    for (int i = 1; i < n; i++) { // 从第二个元素开始循环
        if (a[i] == a[i-1]) curr_len++; // 如果当前元素等于前一个元素,则将当前平台长度加1
        else {
            max_len = max(max_len, curr_len); // 否则将当前平台长度与最长平台长度取最大值,并更新最长平台长度
            curr_len = 1; // 重置当前平台长度为1,因为当前元素本身就是一个平台的起点
        }
    }
    max_len = max(max_len, curr_len); // 如果最后一个元素是平台的一部分,则需要再次更新最长平台长度
    cout << max_len << endl; // 输出最长平台长度
    return 0;
}