题目描述
输入一个数组的值,求出各个值从小到大排序后的次序。
输入描述:
输入有多组数据。
每组输入的第一个数为数组的长度n(1<=n<=10000),后面的数为数组中的值,以空格分割。
输出描述:
各输入的值按从小到大排列的次序(最后一个数字后面没有空格)。
示例1
输入
4
-3 75 12 -3
输出
1 3 2 1
#include <iostream>
using namespace std;
void sort(int a[],int *n)
{
int i,j,t,temp;
for(i=1;i<*n;i++)
for(j=i+1;j<=*n;j++)
{
if(a[j]<a[i])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
if(a[j]==a[i])
{
for(t=j;t<*n;t++)
a[t]=a[t+1];
*n=*n-1;
}
}
}
int main()
{
int n;
while(cin>>n)
{
int m=n;
int a[10000],i,j,b[10000];
for(i=1;i<=n;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(b,&n);
for(i=1;i<m;i++)
for (j=1;j<=n;j++)
{
if(a[i]==b[j])
cout<<j<<' ';
}
for(j=1;j<=n;j++)
if(a[i]==b[j])
cout<<j<<endl;
}
return 0;
}