top1编程
← 返回题目
题解

【入门】允许并列的排名2

1 条题解

  • 0
    @ 2026-7-28 23:24:01
    #include <bits/stdc++.h>
    using namespace std;
    int main(){
    	int n,a[1010],b[1010],i,j;
    	cin>>n;
    	for(i = 0;i < n;i++){
    		cin>>a[i];
    		b[i] = a[i];
    	}
    	for(int i=1;i<n;i++){
            for(int j=0;j<n-i;j++){
                if(a[j]<a[j+1]){
                    swap(a[j],a[j+1]);
                }
            }
        }
    	for(i = 0;i < n;i++){
    		for(j = 0;j < n;j++){
    			if(b[i]==a[j]){
                //按原来的位置找排序后的数字
    				cout<<j+1<<" ";
    				break;
    			}
    		}
    	}
    	
    }
    
    • 1