对数组A中的N个整数从小到大编号,输出各个元素的编号,要求不能改变数组元素的顺序,且相同的整数要有相同的编号。
#include <stdio.h>
#include <math.h>
#include <string.h>
void number(int A[],int N)
{
int arr[2][100];
for(int i = 0;i < N;i++)
{
arr[0][i] = A[i];
arr[1][i] = 0;
}
int min = 1000000;
int no = 0;
int no2 = 0;
for(i = 1;i <= N;i++)
{
for(int j = 0;j < N;j++)
{
if(arr[0][j] < min && arr[1][j] == 0)
{
no = j;
min = arr[0][j];
}
}
if(no != -1)//都已经有序号了
{
arr[1][no] = i;
for(j = 0;j < N;j++)
{
if(arr[0][j] == min && arr[1][j] == 0)
{
arr[1][j] = i;
}
}
}
no = -1;
no2 = -1;
min = 10000;
}
for(i = 0;i < N;i++)
printf("%d ",arr[1][i]);
printf("\n");
}
void main()
{
int A[100];
int n;
scanf("%d",&n);
for(int i = 0;i < n;i++)
scanf("%d",&A[i]);
number(A,n);
}