动态数组,该怎么处理

动态数组
#include <iostream>
using namespace std;

void sorted(int *, int);

void main()
{
   int n;
   cout<<" input N :"<<endl;
   cin>>n;
   int *array = new int[n];
   cout<<"input Array :"<<endl;
   for(int i=0 ; i<n ; i++)
   {
   cin>>array[i];
   }
   sorted(array , n);
}
   
void sorted(int *number, int m)
{
   int temp;
   for(int i=0 ; i<m ; i++)
   {
   if(*(number+i) <= *(number+(i+1)))
   {
   temp = *(number+i);
   *(number+i) = *(number+(i+1));
   *(number+i) = temp;
   }
   }
   cout<<"the sorted number :"<<endl;
   for(int j=0 ; j<m ; j++)
   {
   cout<<*(number+i)<<"  ";
   }
   cout<<endl;
}



程序可以运行,也没提示错误! 为什么结果是这样的呢!!!
动态数组,该怎么处理
------解决方案--------------------
1.你的排序方法很有问题,简单的排序有选择排序和冒泡排序,如果你要用冒泡排序,请认真看排序步骤。
2.你的程序变量很多错误,例如
   if(*(number+i) <= *(number+(i+1)))
   {
      temp = *(number+i);
      *(number+i) = *(number+(i+1));
      *(number+i) = temp;
   }
中的最后一行,应该是*(number+(i+1)) = temp;

   for(int j=0 ; j<m ; j++)
   {
      cout<<*(number+i)<<"  ";
   }
中的i应该是j,要多注意细节,在你的代码基础上做了下修改
#include <iostream>
using namespace std;

void sorted(int *, int);

void main()
{
    int n;
    cout<<" input N :"<<endl;
    cin>>n;
    int *array = new int[n];
    cout<<"input Array :"<<endl;
    for(int i=0 ; i<n ; i++)
    {
        cin>>array[i];
    }
    sorted(array , n);
}

void sorted(int *number, int m)
{
    int temp;
    for(int i = 0;i < m;i++)
    {
        for(int j = m - 1;j > i;j--)
        {
            if(*(number + (j - 1)) <= *(number + j))
            {
                temp = *(number + (j - 1));
                *(number + (j - 1)) = *(number + j);
                *(number + j) = temp;
            }
        }
    }
    cout<<"the sorted number :"<<endl;
    for(int j=0 ; j<m ; j++)
    {
        cout<<*(number+j)<<"  ";
    }
    cout<<endl;
}