Сортировка массива на Си

Сортировка массива на Си
Отказывается правильно сортировать. Суть такова: ввожу 5 элементов массива, переприсваеваю эти элементы в другой массив, и отправляю новый массив с элементами на сортировку (по убыванию). Если не делать отдельную функцию с сортировкой и новым массивом, то всё сортируется верно. Интересно, в чём у меня ошибка?

Отдельную функцию решил сделать для небольшого сжатия кода, т.к по заданию у меня сортировка структуры, а из неё нужно каждый раз брать отдельные элементы структуры (эти элементы и будут временно в новом массиве). Сделал этот пример для того, чтобы проще было разобраться

Код программы.
#include
#include

using namespace std;

const int n = 5;

int mas[n];

void Vjvod () {
cout < < endl;
for (int i=1; i< =n; i++) {cout << mas < < " ";}
}

void SortMas (int *b) {
int v;

for (int i=1; i< =n-1; i++) {
for (int j=1; j< =n-1; j++) {
if (b[j] < b[j+1]) {
v=mas[j]; mas[j]=mas[j+1]; mas[j+1]=v;
}
}
}
Vjvod();
}

main () {
for (int i=1; i< =n; i++) {
cin >> mas;
}

int a[n];
for (int i=1; i< =n; i++) {
a
= mas;
}
SortMas(a);

getch();
}

  • for (int i=1; i< =n-1; i++) { for (int j=1; j<=n-1; j++) { if (b[j] < b[j+1]) { v=mas[j]; mas[j]=mas[j+1]; mas[j+1]=v; Вот где дьявол кроется, тут у тебя массив b не меняется, соответственно у тебя постоянно первый символ mas уходит в конец, т.е 12345 23451 34512 45123 51234 Ну это чисто на примере с массивом 12345