#include <stdio.h>
int count(int c[],int t)
{
    int count=0;
    for(int i=0;i<t;i++)
    {
        if(c[i]<c[t])
        {
            count++;
        }
    }
    return count;
}
int main() 
{
    int n;
    scanf("%d",&n);
    int a[n],b[n];
    scanf("%d",&a[0]);
    int min=a[0],max=a[0];
    b[0]=0;
    for(int i=1;i<n;i++)
    {
        scanf("%d",&a[i]);
        if(a[i]>max)
        {
            b[i]=i;
            max=a[i];
        }
        else if(a[i]<min)
        {
            b[i]=0;
            min=a[i];
        }
        else 
        {
            b[i]=count(a,i);
        }
    }
    for(int i=0;i<n;i++)
    {
        printf("%d ",b[i]);
    }
    return 0;
}

根据分析发现所有可能有三种情况:

①输入值为最小值,这时候小于该输入值的个数为零;

②输入值为最大值,这时候小于该输入值的个位数为该元素对应的数组下标;

③输入值在最大值和最小值之间,这个时候需要来一个函数来确定个数;即判断数组中小于该元素的个数,用for循环遍历即可。