1 条题解

  • 0
    @ 2025-10-10 15:48:07

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    bool compare(int a,int b){
    	return a > b;
    }
    
    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];
    	}
    	sort(b,b+n,compare);
    	
    	for(i = 0;i < n;i++){
    		for(j = 0;j < n;j++){
    			if(a[i] == b[j]){
    				cout<<j+1<<" ";
    				break;
    			}
    		}
    	}
    	
    }
    
    
    

    Pascal :

    var a:array[1..100000] of longint;
        s,i,j,b:longint;
    begin
    read(b);
    for i:=1 to b do
    read(a[i]);
    for i:=1 to b do
    begin
    for j:=1 to b do
    if a[j]>a[i] then s:=s+1;
    write(s+1,' ');
    s:=0;
    end;
    end.
    

    Java :

    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int n,x,s = 0;
    		n = sc.nextInt();
    		int[] a = new int[n];
    		int[] b = new int[n];
    		for(int i = 0;i < n;i++){
    			a[i] = sc.nextInt();
    			b[i] = a[i];
    		}
    		
    		int t;
    		for(int i = 1;i <= n - 1;i++){
    			for(int j = 0;j <= n - i - 1;j++){
    				if(a[j] < a[j + 1]){
    					t = a[j];
    					a[j] = a[j + 1];
    					a[j + 1] = t;
    				}
    			}
    		}
    		
    		//查名次,也就是b[i]在a数组中第一次出现的下标+1
    		for(int i = 0;i < n;i++){
    			for(int j = 0;j < n;j++){
    				if(a[j] == b[i]){
    					System.out.print(j + 1 + " ");
    					break;
    				}
    			}
    		}
    	}
    }
    

    Python :

    n=int(input())
    a=input().split()
    a=list(map(int,a))
    b=[]
    for i in a:
        b.append(i)
    a=sorted(a)
    a.reverse()
    c=[]
    for i in b:
        w=a.index(i)
        print(w+1,end=" ")
    
    
    • 1

    信息

    ID
    435
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者