1 条题解
-
0
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
- 上传者