1 条题解

  • 0
    @ 2024-12-24 9:59:18

    C :

    #include<stdio.h>
    # define N 10000
    int del(int a[],int n);
    int bubblesort(int a[],int n);
    int locate(int a[],int b,int n);
    int main()
    {
            int a[N],b[N],i,j,n,num,z;
            while(scanf("%d",&n)!=EOF)
            {
                    for(i=0;i<n;i++)
                    {
                            scanf("%d",&a[i]);
                            b[i]=a[i];
                    }
                    bubblesort(a,n);
                    num=del(a,n);                
            for(z=0;z<n-1;z++)
                            printf("%d ",locate(a,b[z],num));
                    printf("%d\n",locate(a,b[n-1],num));
            }
            return 0;
    }
    int del(int a[],int n)
    {
            int i,j,k;
            for(i=0,j=i+1;j<n;j++)
            {
                    if(a[i]!=a[j])
                    {
                            if((k=j-i-1)!=0)
                            while(j<n)
                                    {
                                            a[j-k]=a[j];
                                            j++;
                                    }
                                    i++;
                                    j=i;
                                    n=n-k;
                    }
            }
            if(a[n-2]==a[n-1])
                            n--;
            return n;
    }
    int bubblesort(int a[],int n)
    {
       int i,j,temp;
       for(i=0;i<n;i++)
               for(j=i;j<n;j++)
                       if(a[i]>a[j])
                       {
                  temp=a[i];
                              a[i]=a[j];
                              a[j]=temp;
                       }
                      return 0;
    }
    int locate(int a[],int b,int n)
    {
            int i,j,k;
        for(i=0;i<n;i++)
                    if(a[i]==b)
                            return i+1;
    }
    

    C++ :

    #include<stdio.h>
    #include <algorithm>
    #include <stdlib.h>
    #include <map>
    #include <string.h>
    using namespace std;
    
    int main(){
            int n,*arr,*arr2;
            map<int,int> mymap;
            while(scanf("%d",&n) != EOF){
                    arr =(int*)malloc(sizeof(int)*n);
                    arr2 = (int*)malloc(sizeof(int)*n);
                    for(int i=0;i<n;i++){
                          scanf("%d",&arr[i]);
                          arr2[i] = arr[i];
                    }
                    sort(arr2,arr2+n);
                    int index = 0;
                    for(int i=0; i<n; i++){
                            mymap.insert(pair<int,int>(arr2[i],index));  //插入数字和对应的  排名
                            index ++;
                            if( i!=0 && arr2[i]==arr2[i-1])
                                    index --;
                    }
                    for(int i=0; i<n; i++){
                            if(i==0)
                                    printf("%d",mymap.find(arr[i])->second+1);
                            else
                                    printf(" %d",mymap.find(arr[i])->second+1);
                    }
                    printf("\n");
            }
            return 0;
    }
    
    • 1

    信息

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