对数组A中的N个整数从小到大进行连续编号,要求不能改变这N个数在 数组A中的存放顺序,且相同的数编号也相同
采用set集合自动排序且不重复的特性,可将序列中重复值消掉,直接判断其该处的位置。
#include<bits/stdc++.h>
using namespace std;
void test9992() {
set<int>s;
int a[100],b[100];
int n;
cout << "please input N:" << endl;
cin >> n;
cout << "please input N Numbers:" << endl;
for (int i = 0; i < n; i++)
{
cin >> a[i];
s.insert(a[i]);
}
int ib = 0;
for (set<int>::iterator it = s.begin(); it!=s.end(); it++)
{
b[ib++] = *it;
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < s.size(); j++)
{
if (a[i] == b[j]) cout << j+1 << " ";
}
}
}
int main() {
test9992();
return 0;
}
输入:
输出: