供参考:
#include <stdio.h>
int main()
{
int a1[20]={0},a2[20]={0},n,i,j,pos=0,flg,k;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a1[i]);
for(i=0;i<n;i++) //将a1[]数组元素去重后复制到 a2[]数组中
{
for(j=0,flg=0;j<pos;j++)
{
if(a1[i]==a2[j])
flg=1;
}
if(flg==0)
{
a2[pos]=a1[i];
pos++;
}
}
for(i=0;i<n;i++) //将a1[]数组中的每个元素与a2[]数组元素比大小,得到排列序号
{
for(j=0,k=1;j<pos;j++)
{
if(a1[i]>a2[j])
k++;
}
printf("%d ",k);
}
printf("\n");
return 0;
}
#include<stdio.h>
int main() {
int N,i , j, a[2][20] = {0}, index = 0 , min , front = -65536;
scanf("%d",&N);
for(i = 0 ; i < N ; i++) {
scanf("%d", &a[0][i]);
}
for(i = 0; i < N ; i++) {
//从编号为0的数中找最小值
j = 0;
while(a[1][j] != 0)
j++;
min = j;//min为第一个编号为0的数的下标
for(j = 0 ; j < N ; j++) {
if(a[1][j] == 0 && a[0][j] < a[0][min]) {
min = j;
}
}
if(a[0][min] > front)
index++;
a[1][min] = index;
front = a[0][min];
}
for(i = 0; i < N; i++)
printf("%d ", a[1][i]);
return 0;
}