C语言有关数组的问题

问题遇到的现象和发生背景

在这里arr[]是初始数组,b[]是其经过冒泡排序后由小到大排序得到的数组,arr[] 中分别放入值,Arr[]中放入对应值的数量,现在我需要通过比较arr和b,相等时把arr对应的Arr赋值给新数组c,现在问题是arr[]中有相同元素,导致赋值给c的值不完全正确,请问我该怎么解决这个问题?

用代码块功能插入代码,请勿粘贴截图

```c
for (int i = 0;i < n; i++){
        for (int j = 0; j < n; j++){
            if (arr[i] == b[j]){
                c[j] = Arr[i]; 
            }
        }
    }

###### 运行结果及报错内容 

```c
arr:6 10 2 3 7 8 6 10 3 6
Arr:8 2 12 8 5 9 14 3 4 9
b:2 3 3 6 6 6 7 8 10 10
c:12 4 4 9 9 9 5 9 3 3
我想要达到的结果

结果c应该为: 12 4 4 8 9 14(这三个位置不做要求,可颠倒)5 9 2 3(这两个也是)