Проблема с вашими циклами заключается в том, что вы продолжаете сравнение даже после того, как вы установили свой элемент в arr2.Вот почему они все в конечном итоге как наибольшее число.Вы хотите установить каждый элемент только один раз.Вы можете попытаться вставить разрывы в каждый цикл for, но я бы нашел более простое решение:
int b = 0;
while(b < 5) {
for (int a = 0; a <=100;a++){
for(int j = 0; j <=4; j++){
if (a == arr1[j]){
arr2[b]=arr1[j];
b++;
}
}
}
}
Увеличивая b каждый раз, когда вы устанавливаете элемент, вы проверяете, что каждый элемент устанавливается только один раз.
Это говорит о том, что KevinO верен, и есть другие более эффективные способы сортировки чисел (например, ваш текущий код не может обрабатывать числа больше 100).Я бы порекомендовал проверить ссылку