miao-jc 2023-12-13 18:01
浏览 11
已结题

洛谷P1420,为什么两段代码,通过情况不一样?有什么区别?

img

第一段代码:

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

第二段代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long n,m=1,h=1;
    cin>>n;
    long long a[n];
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    for(int i=0;i<n-1;i++)
    {
        if(a[i+1]==a[i]+1)
            m++;
        if(((a[i+1]!=a[i]+1)&&(m>h))||m==n)
        {
            h=m;
            m=1;
        }
        if((a[i+1]!=a[i]+1)&&(m<=h))
        {
            m=1;
        }
    }
    cout<<h<<endl;
    return 0;
}

为什么第一段代码存在错误
Wrong Answer.wrong answer On line 1 column 1, read 5, expected 1.
两段代码有什么区别?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月21日
    • 创建了问题 12月13日