hahahahaqg 2023-01-22 21:17 采纳率: 12.5%
浏览 42

洛谷P1321,示例没问题,想知道代码哪里错了


#include<stdio.h>
int main()
{
    int n,k=0,a[10000];
    scanf("%d",&n);
    //int a[n];
    for(int i=0;i<n;i++)
    scanf("%d",&a[i]);
    for(int i=1;i<n-1;i++)
    {
        int mid=a[i];
        int left=a[i-1],right=a[i+1];
        if(right==mid)
        {
            i++;
            right=a[i+1];
        }
        if(mid<left&&mid<right)k++;
    }
    printf("%d",k);
}
  • 写回答

2条回答 默认 最新

  • a7464553 2023-01-22 21:21
    关注

    代码中未考虑数组越界的情况,可以在for循环的判断条件中加入i>0,i<n-1的判断,以防止数组越界。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月22日