题目描述
/*涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。
每位读者有一个编号,每条记录用读者的编号来表示。
给出读者的来访记录,请问每一条记录中的读者是第几次出现。
输入格式
输入的第一行包含一个整数 n,表示涛涛的记录条数。
第二行包含 n 个整数,依次表示涛涛的记录中每位读者的编号。
输出格式
输出一行,包含 n 个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。
数据范围
1≤n≤1000,
读者的编号为不超过 n 的正整数。
输入样例:
5
1 2 1 1 3
输出样例:
1 1 2 3 1
*/
样例
#include <string>
#include <algorithm>
#include <iostream>
using namespace std;
struct ci{
int id = 0;
int time = 0;
};
int main(){
int N = 1010;
ci a[N];
int n;//多少人
cin >> n;
for(int i = 0 ; i < N ; i++){
a[i].id = i;
}
for(int i = 0 ; i < n ; i++){
int duru;
cin >> duru;
a[i].id = duru;
// for(int j = 0 ; j < N ; j++){
// if(j == a[i].id) {
// a[j].time = a[j].time + 1;
// cout << a[j].time<<" ";
// }
//注意for循环的时候是要遍历整个数组N 而不是n 要分清小细节
a[duru].time = a[duru].time + 1;
cout << a[duru].time << ' ';
//这种方法更直接 以遍历判等找到duru对应单元的行为为多此一举
}
}
return 0;
}