问题解决不了,等朋友解答

输入n个字符串,将它们按字母由小到大的顺序排列并输出(不用指针,不定义函数,用二维数组)


#include<iostream.h>
//排序函数
void order(char *p,char *q){
char t;
t=*p;
*p=*q;
*q=t;
}
void main(){
int n,i,j,k;
cout<<"Please input the number:";
cin>>n;//自己定义数组长度
char *arr=new char[n];
for(i=0;i<n;i++)
cin>>arr[i];
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(arr[j]<arr[k]) k=j;//找出最小字符
if(i!=k)
order(&arr[k],&arr[i]);//交换位置
}
for(i=0;i<n;i++)
cout<<arr[i];
delete[] arr;//释放内存
}