¿Como hago para ingresar un arreglo de 7 elementos y que me lo ordene por el metodo de intercambio?

Eh logrado hacer esto:cuando ingreso 7 numeros del 1 al 7 me anda pero cuando ingreso numeros mas grande no me funciona.. por que? aca les dejo el codigo que eh hecho hasta el momento.. agradeceria su ayuda.. la duda que tengo es en que parte del codigo deberia pedirle al usuario que ingrese los numeros y en que variables deberia guardarlo? Y tambien en como haria para imprimir esos numeros que el usuario me ingrese hay es donde estoy perdido en la parte donde tengo que pedir que me ingrese los numeros

#include <iostream>   void intercambiar(int& x, int& y) {  int aux = x; x = y; y = aux;   }   //Ordenamiento por Intercambio Ascendente  void ordIntercambio(int a[], int n) {    int i, j;      for (i = 0; i < n - 1; i++) {      for (j = i + 1; j < n; j++) {               if (a[i] < a[j]) {          intercambiar(a[i], a[j]);         }     } }  }   void imprimirArreglo(int a[], int tam) {  std::cout << "[";  for(int i = 0; i < tam; i++) {  std::cout << a[i] << ","; }  std::cout << "]" << std::endl; }   void copiar_arreglo(int origen[], int destino[], int tam){  for(int i = 0; i < tam; i++) {  destino[i] = origen[i];  } }    int main() {  int tamArreglo = 6;  int arregloOrg[6];  int arregloTemporal[6];  for(int i=0; i<7;i++){  std::cout<<"Ingrese un numero: ";  std:: cin >>arregloOrg[i];  }  std::cout << "Arreglo a ordenar: " << std::endl;  imprimirArreglo (arregloOrg, tamArreglo);  std::cout << std::endl;  //copio el arreglo para tener una version del original...  copiar_arreglo(arregloOrg, arregloTemporal, tamArreglo);  ordIntercambio(arregloTemporal, tamArreglo);  std::cout << "Ordenamiento por Intercambio Ascendente: " << std::endl;  imprimirArreglo(arregloTemporal, tamArreglo);  std::cout << std::endl;  return 0; }