题目描述
给一个整型数组中的数按从大到小的顺序连续编号,要求相同数字编号相同,编号从1开始,输出编号结果时按照原数组元素的顺序输出。
输入
第一行输入数组元素个数(个数大于等于1,并且小于等于20),第二行输入整型数组元素,各个整数之间以空格分隔。
输出
在一行内依次输出编号结果,各个编号之间用一个空格分隔。
样例输入 复制
7
-3 75 51 90 1118 51 -3
样例输出 复制
5 3 4 2 1 4 5
供参考:
#include<stdio.h>
int main()
{
int a[21]={0},b[21]={0};
int i,j,s,n;
scanf("%d",&n);
for(i=0; i<n; i++)
scanf("%d",&a[i]);
for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
if(a[i]==a[j])
b[i]++;
for(i=0; i<n; i++)
{
for(j=0, s=1; j<n; j++)
if(b[j]==0 && a[i]<a[j])
s++;
printf(i == 0 ?"%d":" %d" ,s);
}
printf("\n");
return 0;
}