#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循环遍历即可。

京公网安备 11010502036488号