答案有一半是错误的,我这样的算法逻辑对吗

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
我想要达到的结果

img

#include
int main()
{ int n,i,j;
 while(scanf("%d",&n)!=EOF)
 { int a[n+1];
   int cn=0;
  for(i=1;i<=n;i++)
  { scanf("%d",&a[i]);
  }
  for(i=1;iif(a[n]>a[i])
   cn++;
  }
    

  printf("%d\n",cn);
 }
    return 0;
}

没看懂题是什么意思我按我的理解写了一下

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

img