有没有人帮我看看怎么解决

读入1个正整数 n(n<=10),再读入n个整数并放入一个数组 r 中,
统计并输出比相邻元素小的数组元素的个数。
例:括号内是说明
输入:
5 1 3 2 4 0 (n=5)?
输出:
count=3 (满足条件的数组元素有 1,2,0)

img

看代码中应该会报数据越界;

line12 和 line13 中,i = 0 从0开始,但是line13行中,比较的时候使用了r[i-1],会出现r[-1]的情况,数组越界了,for循环中使用的时候,应该注意数组不要越界,

那只要遍历数组每个元素,与其下标+1和-1的元素比大小就行了
你没有考虑靠边的两个元素。

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include<stdio.h>
int main()
{
    int n,i,r[11];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&r[i]);
    }
    for(i=0;i<n;i++)
    {
        if ((i==0 || r[i]<r[i-1]) && (i==n-1 || r[i]<r[i+1]))
            printf("%d ",r[i]);
    }

    return 0;
}

img

img